본문 바로가기

깃 브랜치 (git branch) 3. 브랜치 병합하기 (git merge) / 브랜치 삭제하기 (git branch -d)

https://www.opentutorials.org/course/2708/15262




서로 다른 브랜치를 병합(merge)하는 방법을 알아보자.



* 현재 브랜치 상황


master : 1-2-5

exp : 1-2-3







여기서 exp의 내용( commit '3')을 master branch도 갖게 병합해 보자 (exp -> master)

-> master 브랜치에 exp 브랜치의 내용을 가져와 합쳐보자.



(master 브랜치에서)

git merge '가져올 브랜치 이름'


ex) 

git merge exp


이런 작업창이 열린다.

명령어 ':wq'를 입력해 저장하고 빠져나온다.



병합이 되었는지 log를 확인해 보자.


git log --branches --graph -- decorate --oneline


  병합이 되었다.

master의 5 / exp의 3 을 부모로 갖는 새로운 commit이 생성된 것을 볼 수 있다.




exp가 갖고 있는 f3.txt가 있는지 확인해보자.


ls -al


f1.txt, f3.txt 가 있는 것을 볼 수 있다.




이번에는 exp에 master를 가져와 병합해 보자.

우선 (현재) master를 checkout 해서 exp로 이동한다.


git checkout exp



master를 가져와 병합한다.


git merge master



로그를 확인해보자.


git log --branches --graph --decorate --oneline


병합이 되었다.

master에서 exp를 병합했을 때와 같은 commt을 갖고 있는 것을 볼 수 있다.



master와 exp가 같으므로 exp를 삭제 해보도록 하자.


먼저 마스터로 이동한다.

git checkout master


브랜치 exp를 지워보자.

git branch -d exp


log로 확인해 보자.



exp는 지워지고, head가 master만 가르킨다.




- 정리 -


브랜치A에서 브랜치B의 내용을 가져와 병합한다.


1. 브랜치A로 이동 (현재 A에 있다면 이 작업은 필요x)

git checkout 브랜치A


2. 병합하기. (B->A)

git merge 브랜치B




브랜치 지우기

git branch -d '브랜치이름'