git merge
: 서로 다른 branch의 작업 내용을 하나의 branch로 통합하기 위한 명령어
git merge [브랜치명]
합치길 원하는 브랜치로 이동 후에 합칠 브랜치를 입력한다.
예시) main
브랜치에 develop
브랜치를 합치고 싶다.
git merge develop
위 명령어를 입력하면 main
에는 없고 develop
에만 있던 수정 사항이 main
에 통합진다.
git log --graph --decorate --oneline
위와 같이 merge한 상황에서 특정 파일에 대한 main
의 수정사항과 develop
의 수정 사항 기록이 다르다면 오류가 난다. 그것을 merge conflict
라고 한다.
따라서, merge conflict
는 다른 두 파일을 어떻게 합쳐야할지를 결정할 수 없을 때 발생한다.
해결 방법
Accept Current Change
: 현재 우리가 있는 main 브랜치의 내용을 따른다.Accept Incoming Change
: 병합하는 develop 브랜치의 내용을 따른다.Accept Both Changes
: 두 브랜치 내용 모두를 담는다.원하는 작업으로 수정 후에 커밋을 해주면 해결된다.
fast-forward
: merge했을 때, 새로운 커밋이 생기는 것이 아니라, 그냥 main 브랜치에 develop 브랜치의 commit 기록이 병합되는 것
만약 줄기가 나눠진 형태로 커밋 기록을 남기고 싶다면, 아래와 같이 --no-ff
를 붙여서 merge 명령어를 입력하면 된다. (non fast forward의 약자)
git merge [develop] --no-ff
😭잘 이해가 안간다....
글 잘 봤습니다, 감사합니다.