'release01'와 'release02' 브랜치에 변경한 부분을
모두 develop 브랜치에 Merge(병합)해보자.
1. 먼저 develop Branch로 checkout 한다.
$git checkout develop
2. 'release01'브랜치의 내용을 Merge 한다.
$git merge release01
3. 'release02'브랜치의 내용을 Merge 한다.
$git merge release02
만약 이때 당황스럽게도 다음과 같이
'CONFLICT(충돌)'이라는 메시지가 나왔다면,
Auto-merging(자동 병합)에 실패한 것입니다.
Auto-merging history.xml
CONFLICT (content): Merge conflict in history.xml
Automatic merge failed; fix conflicts and then commit the result.
먼저 충돌이 발생한 원인입니다.
앞서 2,3 각각의 브랜치에서 변경한 내용이 history.xml의 같은 행에
포함된 이유로 충돌이 발생한 것입니다.
add: 변경 사항을 만들어서 인덱스에 등록해보기
<<<<<<< HEAD
char rel_date[] = "June 10 2019";
=======
char rel_date[] = "June 20 2019";
>>>>>>> release02
Git은 충돌이 발생한 부분에 대해 자동으로 위와 같이 충돌 정보를
포함하여 파일 내부의 내용을 변경합니다.
"<<<<<<< HEAD"부터 "======="는 현재 checkout 된 브랜치의
파일 내용이고,
"======="부터 "release02"까지는
머지하려는 Target 브랜치인 "release02"상의 history.xml파일 내부의
내용입니다.
이 내용을 보고 어떤 브랜치에서 어떤 부분이 충돌되었는지를
확인할 수 있습니다.
확인 후, 특수기호인 "<<<<<<< HEAD" , "=======" , "release02"
를 제거한다.
제거 후, git commit, git push 해주면 작업 완료!
충돌이 발생한 부분은 일일이 확인해서 매뉴얼로 이런 방식으로 직접
수정해주어야 합니다.
'Linux & GIT' 카테고리의 다른 글
git log --pretty 확장 옵션 예제 (0) | 2021.07.08 |
---|---|
git log 명령 사용 - 커밋 히스토리 조회 방법들 (0) | 2021.07.07 |
Git fetch, Git merge 그리고 Git pull (0) | 2019.06.07 |
Git remote 명령어 (0) | 2019.06.05 |
Git diff 명령어 (0) | 2019.06.05 |
댓글