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 강의)
'프로그래밍 > Git' 카테고리의 다른 글
생활코딩 Git 정리 – 충돌의 해결 (0) | 2017.02.25 |
---|---|
생활코딩 Git 정리 – Push, Pull 협업의 기술 (0) | 2017.02.24 |
생활코딩 Git 정리 – Github을 이용하여 원격저장소로 업로드 및 복사하기 (0) | 2017.02.24 |
생활코딩 Git 정리 - Github을 이용하여 원격 저장소 만들기 (0) | 2017.02.20 |
생활코딩 Git 정리 – Branch 충돌 해결 (0) | 2017.02.18 |
생활코딩 Git 정리 – Branch 합치기 (0) | 2017.02.17 |
생활코딩 Git 정리 - Branch 나누기 (0) | 2017.02.15 |
생활코딩 Git 정리 – Revert(Reverse commit) 사용법 (0) | 2017.02.14 |