Git - #8. 브랜치 병합 (merge, rebase)
저번시간 브랜치를 생성하는 방법을 알아보았으며, 이번에는 브랜치를 합치는 방법에 대하여 간단히 알아보겠다.
브랜치를 합치는 방법은 두가지 있다
- merge
- rebase
각각의 방법은 브랜치를 합친다는 점에서 동일하지만, 동작하는 과정이 다르다.
1. merge
merge는 최초 병합의 기준이되는 branch에 위치한다.
병합되는 과정은 다음과 같다
1. git merge "병합 할 브랜치" 명령어 입력
2. git commit page 에서 메세지 작성후 :wq로 저장 및 커밋
3. 병합 후 불필요해진 브랜치 삭제 (git branch -d "불필요 브랜치")
merge의 특징이다.
- 병합이 완료되면 병합의 기준이 되는 branch에 새로운 커밋과 함께 병합한 브랜치의 내용이 추가된다.
- 병합 후 불필요해진 병합한 브랜치는 삭제를 해도 브랜치의 기록이 남는다.
merge의 단점은 프로젝트 규모가 클 때 브랜치의 기록이 모두 남기 때문에 관리가 어렵다는 것이다.
2. rebase
rebase는 최초 병합을 할 branch에 위치한다. (main에 branch1을 합칠 때는 branch1에 위치)
병합되는 과정은 다음과 같다.
1. git rebase "병합의 기준 브랜치"
2. 병합의 기준이되는 브랜치로 이동
3. git merge "병합 할 브랜치"
4. 병합 후 불필요해진 브랜치 삭제 (git branch -d "불필요 브랜치")
rebase의 특징이다.
- 병합을 할 브랜치에서 rebase의 명령어를 실행하면, 병합을 할 브랜치에서 이루어졌던 모든 commit들이 병합의 기준브랜치에 변경사항으로 추가된다.
- 추가 된 상태는 변경사항만 생긴 상태이기 때문에 merge 명령어를 추가로 사용해준다.
- 병합 간 충돌 발생
브랜치의 병합과정에서 병합하는 파일과 병합되는 파일에 공통적인 변경사항이 있을 때 충돌이 일어난다.
즉, 같은파일에서 같은 줄, 같은 부분에서 두 브랜치 모두 변경사항이 있다면 충돌이 생긴다.
당황할 필요는 없다.
git은 친절하게 어떤파일에서 어떤 부분에 문제가 생겼는지 설명해준다.
이 때에는 merge, rebase 모두 해당 파일에서 우리가 어떤내용을 추가 할 것인지 선택하여 재입력하고 저장한다.
다음 진행명령어는 차이가 있다.
- merge
* 만약 merge를 중단하고 싶다면 git merge --abort 입력
1. git add .
2. git commit (:wq)
- rebase
* 만약 merge를 중단하고 싶다면 git rebase --abort 입력
1. git add .
2. git rebase --continue (:wq)
3. 기준 브랜치로 이동 후 merge 진행
'Git Study' 카테고리의 다른 글
Git - #9. 깃허브 연동 (회원가입과 토큰) (1) | 2023.09.22 |
---|---|
Git - #7. 브랜치(생성, 이동, 삭제) (0) | 2023.09.12 |
Git - #6. Reset, Revert (0) | 2023.09.07 |
Git - #5. 버전 만들기 (Commit) (0) | 2023.08.30 |
Git - #4. gitignore (0) | 2023.08.29 |