본문 바로가기
개발 공부/Git

[지옥에서온git] branch를 다루는 연습 중 merge conflict

by 반달bear 2022. 8. 2.
반응형

생활코딩님의 지옥에서 온 git을 수강하는 도중 혼자 실습해본 내용입니다.

Git - Basic Branching and Merging (git-scm.com)

 

Git - Basic Branching and Merging

If you need more advanced tools for resolving tricky merge conflicts, we cover more on merging in Advanced Merging.

git-scm.com

를 참조하였습니다.

 

시작은 순조롭게 차근차근 성공했습니다.

master과 iss53 branch 만들기

hotfix branch 만들기

hotfix를 master에 merge(fast-forward)한 이후 hotfix branch 삭제

마지막으로 iss53을 master에 merge(recursive)하면 끝나는 연습이었는데 여기서 merge conflict가 발생했습니다...

c.txt라는 하나의 파일만 수정하면서 commit 해줬더니 conflict가 발생한 것 같아서 c.txt에 들어가줬습니다.

역시 HEAD 인 master에는 c.txt의 내용이 version 5로, iss53에는 version 6으로 내용이 달라서 어느 내용을 기준으로 merge할지 몰라 conflict가 발생하는 것 같았습니다.

 

아직 branch conflict에 대한 강의까지는 수강하지 못해 나름의 방법을 생각했는데 첫번째. iss53으로 넘어가서 iss53의 최근 커밋을 지워주는 방법(iss53의 version6이 이전 커밋에서는 version5여서 생각한 방법입니다) 두번째. c.txt의 파일내용을 수정해주는 방법. 이 떠올랐습니다. 

 

어찌되었던 간에 iss53으로 건너가 만져봐야겠다는 생각이 들어 checkout하려고 했으나

c.txt가 merge 되기 전까지는 꼼짝도 하지 말라는 소리에 master에 있는 c.txt에 들어가 HEDA 밑에 있는 version을 6으로 수정한 후 커밋했습니다. (지금 생각하니 git log --branches로 oneline하지 않고 본 이후에 iss53의 최근커밋을 지울걸 그랬네요. oneline한 상태가 익숙하고 잘 될거라 생각했는데 conflict가 떠서 미처 생각하지 못했습니다)

그랬더니 성공!

 

이번 branch 연습의 교훈 :  같은 파일에 다른 내용을 갖고 있는 branch들을 merge하면 conflict가 난다. 워드에서 잘못 저장하면 오류나고 어떤 파일을 복원할지 고르라고 할 때가 있었는데 그게 이번 merge와 비슷한 케이스인것 같다.

branch 연습의 감상 :  conflict 덕분에 merge에 대한 개념을 잘 잡게 된 것 같아서 싫은데? 좋다ㅎㅎ

반응형

댓글