현재까지 작업을 분기해서 각자의 작업이 자신만의 히스토리를 만들어 나갔습니다. 하지만 이때 특정 작업들끼리 병합할 필요가 생길 수 있습니다.
이번 시간에는 병합 merge
를 하는 방법에 대해 알아보겠습니다.
git log --branches --graph --decorate --oneline
으로 현재 상태를 먼저 보겠습니다.
대충 에서부터 여라가지 분기점이 생긴것을 확인 할 수 있습니다.
exp_2
의 내용을 master
로 이동해보겠습니다.
즉 exp_2
의 에 있는 내용을 master
에도 적용시켜보겠습니다.
현재 branch
가 master
인 상태에서 git merge exp_2
명령을 실행시켜줍니다.
그랬더니 오류가 발생합니다.
git merge --abort
를 통해 상태 해제를 해줍니다.
이후 다시 git merge exp_2
명령을 실행한 후에
add
와 commit
를 해줍니다.
이후 git log --branches --graph --decorate --oneline
을 실행시
정상적으로 병합이 된 것을 확인 할 수 있습니다.
따라서 master
는 두개의 부모 정점을 가지게 됩니다.
기존의 번 커밋 메세지와 병합한 번 커밋메세지가 그것입니다.
하지만 현재 exp
는 커밋 , 번을갖고있지 못합니다.
이번에는 master
가 작업한 내용도 exp
에 적용시켜보겠습니다.
즉 exp
와 master
가 완전 같은 상태가 되도록 해보겠습니다.
git checkout exp
로 branch
를 변경해준후 git merge master
를 통해 master
를 exp
로 옮기겠습니다.
정상적으로 병합이 되었습니다.
다시 git log --branches --decorate --graph --oneline
실행시
exp
의 위치를 잘 보면 master
의 위치와 똑같이 된것을 확인 할 수 있습니다.
즉 이제 exp
와 master
는 똑같은 상태입니다.
이제 exp
는 필요 없기 때문에 -d
옵션을 통해서 exp
를 삭제 해줍니다.
다시 git log --branches --decorate --graph --oneline
실행시
exp
가 깔끔하게 사라진 것을 확인 할 수 있습니다.