하나의 브랜치를 현재 브랜치와 합치는 것을 병합(marge)라고 합니다.
현재 브랜치를 헤드(Head) 브랜치라고 얘기한다고 말했습니다.
예를 들어 헤드 브랜치가 master이고 여기서 이전에 생성한 version2 브랜치를 병합하면 version2의 내용이 master에 반영됩니다.
병합 시 가장 쉬운 상황
주로 혼자 작업을 할 때 발생하는 아주 행복한 상황입니다.
위 그림은 헤드 브랜치(*이 붙어 있는)인 master에서 version2가 시작되고 두 번 커밋한 상태입니다.
여기서 병합을 하면 단순하게 master 브랜치가 가르키는 커밋이 version2의 커밋으로 이동합니다.
더 이상 자세한 설명은... 필요없을 것 같습니다.
이런 상황을 fast-forward 라고 합니다.
단순히 브랜치의 참조만 갱신되는 상황이죠. 해-피!
그렇다면 이제 이전 포스팅에서 작업하던 커밋을 병합해보겠습니다.
헉... 예상대로 충돌이 일어났습니다ㅠ
그럼 병합하려던 파일을 다시 한번 볼까요?
'<<<<<<<HEAD가 version2 브랜치의 내용이고 >>>>>>>master가 master 브랜치의 내용이다'라고 보여주고 있습니다.
이럴 경우 수동으로 수정해주어야 합니다.
현재/수신 변경 사항들과 출력된 기호들 모두 수동으로 지워주었습니다.
그럼 완벽하게 병합이 된 것을 확인하실 수 있습니다.
여기서 또 저장합니다.
커밋에 가보면 충돌이 난 느낌표의 모양의 test.jsp 파일이 있습니다.
우측에 보시면 코드 중 무엇이 제거되고 무엇이 추가되는지 확인이 가능합니다.
여기서 스테이지에 올린 후 병합하는 것이기 때문에 커밋 메시지를 별도로 추가하지 않고 커밋 하겠습니다.
병합이 잘 되었으니 push를 하면 병합이 끝납니다.
병합을 목적으로 한 브랜치라면 version2 브랜치를 병합 후 삭제해도 master에는 남으니 삭제해도 좋습니다.
'ETC > Git' 카테고리의 다른 글
GitHub 6 - 브랜치를 만들어서 커밋 되돌리기 (0) | 2020.05.10 |
---|---|
GitHub 5 - 충돌 해결하기 (0) | 2020.05.10 |
GitHub 3 - 브랜치(Branch)의 개념 (0) | 2020.05.10 |
GitHub 2 - 변경사항 취소하기 (되돌리기) (0) | 2020.05.10 |
GitHub 1 - 기본 개념과 소스트리 사용하기 (0) | 2020.05.10 |