지금까지는 branch를 만들어 여러버전을 갈래로 나누었다.
이제는 여러 갈래로 나눈 branch를 master branch로 합치는 '병합'을 해보자.
이 단계는 최종 단계로, master branch로 병합하여 최종적으로 배포하기위한 단계이다.
병합을 하기 전에!
일단 지금 어떤식으로 branch가 만들어졌는지 시각적으로 확인해보자.
git log --branches --decorate --graph --oneline 명령어를 입력하면, 시각적으로 확인할 수 있다.
1커밋 2커밋은 공통적으로 갖고있고, 2커밋에서 exp브랜치가 생성되었다. 그리고 4커밋은 master브랜치에서 만들어졌다.
이렇게 가지처럼 시각적으로 나온다.
우리가 그렸던 그림과 비슷하다는 것을 알 수 있다.
merge로 병합해보자
exp에서 우리가 수정했던 내용을 master브랜치도 가지도록 병합해보자.
일단 master브랜치로 checkout 한 다음, git merge exp 를 입력하면 된다. exp브랜치를 master브랜치로 합치겠다! 라는 뜻.
하지만, 이런 충돌 오류가 뜬다.
why? master의 4번 커밋에는 ab1, exp의 3번 커밋에는 abc인데, 합칠때 1과 c이 서로 작성되어있는 위치가 같기 때문에 일어나는 현상이다.
git status로 상태를 확인해보면,
충돌을 바로잡아라, 양쪽에서 수정되었다.. 라는 상태를 알려준다.
이 오류를 바로잡으려면 일단, vim f1.txt로 f1.txt파일에 진입한다.
진입하면 이렇게 나오는데, 이걸 해석해 보자.
HEAD는 현재브랜치를 가르킨다.(여기서는 master브랜치)
구분자를 중심으로 HEAD(master)에는 1, exp에는 c가 같은 위치에 겹친다! 라는 의미.
그러면 이것을 이상태에서 i를 눌러 쓰기모드로 진입후, 수정해주면 된다.
이렇게 수정했음.
그리고 이걸 add한다음에 status로 상태를 보자.
그러면, 충돌을 바로잡았다~ 아직 병합중이다~ 수정되었다 라고 기분좋은 초록색 문자가 표시된다.
그리고 git commit을 입력한다.
이것은 merge commit이라고 부른다. merge지만 일종의 커밋의 개념.
여기서 :wq를 입력하여 저장후 나간다.
그러면 이렇게 표시되면서 merge가 완료된다.
merge(병합)이 잘 되었나 확인을 해보자.
git log --branches --decorate --graph --oneline을 입력하면?
가지가 모여서 병합된 것을 확인할 수 있다.
'Git 학습 > 학습중' 카테고리의 다른 글
Git - branch로 가지를 나눠보자 (0) | 2022.12.26 |
---|---|
Git - reset을 사용해서 이전 커밋으로 돌아가자 (0) | 2022.12.26 |
Git - git log <커밋아이디>, diff <커밋아이디>..<커밋아이디> (0) | 2022.12.13 |
Git - 파일을 수정하고 commit해서 차이점 보기 (1) | 2022.12.13 |
Git - add / commit (0) | 2022.12.13 |