본문 바로가기
Git Study

Git - #8. 브랜치 병합 (merge, rebase)

by KMS_99 2023. 9. 14.

Git - #8. 브랜치 병합 (merge, rebase)

저번시간 브랜치를 생성하는 방법을 알아보았으며, 이번에는 브랜치를 합치는 방법에 대하여 간단히 알아보겠다.

브랜치를 합치는 방법은 두가지 있다

  • merge
  • rebase

각각의 방법은 브랜치를 합친다는 점에서 동일하지만, 동작하는 과정이 다르다.

 

1. merge

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