본문 바로가기
Git&GitHub

[GIT 10] 브랜치 병합하기 - 서로 다른 파일 병합하기

by 어쩌다개발 2023. 1. 20.
반응형

 

브랜치에서 작업을 하다가 어느 시점이 되면 브랜치 작업을 마무리하고 기존 브랜치와 합해야 한다. 
이 작업을 브랜치 병합(merge) 이라고 한다.
브랜치와 브랜치를 병합하다보면 여러 상황이 생길 수 있다.
솔직히 개인적으로는 git 사용하면서 merge 작업하면서 충돌 발생했을 때 해결하는게 제일 빡센거 같다.

서로 다른 파일 병합하기

1) manual-2 라는 깃 저장소를 만든 후, 저장소를 초기화 한다.
지금까지는 mkdir로 폴더를 만든 후 init 작업을 해줬는데, 아래와 같이 입력하면 폴더를 만들면서 초기화 시켜준다.

git init manual-2
cd manual-2
ls -al

2) vim을 이용하여 work.txt 파일을 만들고 1이라는 내용을 입력 후 저장한다. 그리고 커밋 메세지는 'work 1'로 작성하여 커밋한다.

vim work.txt
git add work.txt
git commit -m "work 1"

3) 'o2'라는 브랜치는 만든다.

git branch o2

4) 'o2' 브랜치를 만들었지만, 아직 master 브랜치를 바라보고 있는 상태이다.
master 브랜치에서 master.txt 파일을 하나 더 만든다.
그리고, 내용은 'master 2' 입력하고 저장한 뒤, 'master work 2' 라는 메세지로 커밋한다.

vim master.txt
git add master.txt
git commit -m "master work 2"

5) o2 브랜치로 체크아웃 한 후, o2.txt 파일을 만들고 'o2 2'라는 내용을 저장한다.
커밋 메세지는 'o2 work 2'로 한다.

git checkout o2
vim o2.txt
git add o2.txt
git commit -m "o2 work 2"

6) log 를 확인해보면 커밋 'work 1'은 마스터 브랜치와 o2 브랜치가 똑같이 가지고 있다. 그 다음 master 브랜치에는 'master work 2' 커밋이 생겼고, o2 브랜치에는 'o2 work 2' 커밋이 생겼다.

git log --oneline --branches --graph

7) o2 브랜치 작업이 다 끝나다라고 가정하고, o2 브랜치의 내용을 master 브랜치로 병합한다. 브랜치를 병합하려면 먼저 master 브랜치로 체크아웃해야 한다.

git checkout master

8) 브랜치를 병합하려면 git merge 명령 뒤에 가져 올 브랜치 이름을 적는다. master 브랜치에 o2 브랜치를 가져와 병합하려면 다음과 같이 입력한다.

git merge o2

자동으로 vim 이 실행되면서 'Merge branch o2' 라는 커밋 메세지가 나타난다. 브랜치를 병합하면서 만들어지는 커밋 메세지인데 그대로 종료해도 되고, 수정 후 저장 종료해도 된다.

9) ls-al로 확인해보면 o2 브랜치에 있던 o2.txt 파일이 master 브랜치에 합쳐져 있는 걸 확인할 수 있다.

ls -al

10) 'o2 work 2' 커밋이 master 브랜치에 병합되면서 'Merge branch o2'라는 커밋이 새로 생겼다. 드 브랜치에서 서로 다른 파일을 병합하는 경우 이렇게 해결할 수 있다.

 

* 브랜치를 병합할 때 편집기 창이 열리지 않게 하기

- 편집기 창을 열지 않고 깃에서 지정하는 커밋 메세지를 그대로 사용

git merge o2 --no-edit

-편집기 창이 열리지 않게 설정한 후, 커밋 메세지 추가하거나 수정

git merge o2 --edit
반응형

댓글