프로그래밍/Git

생활코딩 Git 정리 - Branch 충돌의 최소화 방법

가카리 2017. 2. 19. 23:32
반응형

11. Branch 충돌의 최소화 방법


브랜치 변경이 아무 많을 경우 충돌은 불가피하다. 하지만 이것을 일일히 삭제하는 또한 불가능에 가깝다. 이를 최소화 하는 방법에 대해서 알아보자


브랜치 실험 3 먼저 만들자.



다음 Master 브랜치로 이동 내용을 수정한다.



이후 커밋을 한다.



다음 Master 브랜치에 있는 내용을 실험 3 옮긴 작업을 한다. 실험 3 옮긴 다음의 Merge master into current branch 클릭한다.







다음과 같이 master 내용이 실험3으로 복사됬다.


실험 3에서 작업을 커밋을 한다.




master 이동한 커밋을 한다.(충돌이 발생할 있게 해야한다.)



다음 실험3으로 와서 작업을 하기 전에 마스터에 있는 내용을 병합을 한다. 물론 충돌이 것이다.



충돌이 났다.


소스를 보면 충돌이 것을 있다. 여기서 의문점이 드는 것은 당연하다. 어차피 충돌나는 것은 똑같은게 아닌가?


근데 이렇게 작은 충돌을 자주 해결해가는 것이 나중에 한꺼번에 많은 충돌을 해결하는 것보단 쉽다는 것을 의미한다.



다음과 같이 필요한 부분을 가져와서 처리했다.



소스 수정후 Resolve Conflicts 하려니까 Resolve Using ‘Mine’ Resolve Using ‘Theirs’ 보인다.

Resolve Using ‘Mine’ : 현재 브랜치에 있는 내용을 선택해서 충돌을 해결한다는 .

                                        master 브랜치의 내용이 삭제된다.

Resolve Using ‘Theirs’ : master 브랜치에 있는 내용을 선택해서 충돌을 해결한다는 .

                                        실험3 브랜치의 내용이 삭제된다.



우린 이미 충돌을 소스수정을 통해서 해결했으므로 Mark Resolved 선택한다.



다음과 같이 커밋을 완료한다.






마지막으로 실험3에서 작업을 또한 커밋을 하고



실험3 마지막 작업 커밋 완료



이제 실험3에서 작업이 끝났으므로 master branch 돌아와서 실험 3 작업을 병합해야한다.



실험3 master 병합하였다.



결론적으로 말하자면

다음과 같이 실험3 branch master branch 내용을 자주 병합함으로써 충돌을 최소화 있다는 것이다. (한번에 모든 것을 바꾸는 것은 무리다...)


(출처 : 생활코딩 git 강의)


출처 : https://opentutorials.org/course/2136


반응형