93일차 - git merge / rebase

김민찬·2021년 8월 10일
0

취업으로의 여정

목록 보기
94/196

오늘 정리할 주제는 git merge와 git rebase이다.

git merge

git을 버전관리 시스템으로 두고 협업할 할때 여러 개발자들이 서로 개발한다면 병합을 해서 하나의 파일로 만들어야 될 것이다.
이때 쓸 수 있는 것이 git merge 명령어 이다.
git merge는 뻗어나갔던 branch를 병합하는 것이다.

A와 B 두 가지의 branch가 있다고 했을때, A branch를 기준으로 B branch를 가져와서 병합을 하고 싶다고 해보자.

우선 A branch로 전환을 해야한다.
branch 전환 명령어는 switch와 checkout 두 가지가 있다.
현재 HEAD를 A branch로 이동시키는 명령어를 작성해 보면

  1. switch
$ git switch A
  1. checkout
$ git checkout A

위와같이 작성하면 된다.

이제 HEAD가 A branch를 가르키고 있으니 이상태에서 B를 병합하면 된다.

$ git merge B

git rebase

rebase도 다른 branch와 합친다는 것은 merge와 동일하다.
하지만 main을 초기의 main이 아닌 업데이트된 main으로 base를 재설정(rebase)해서 commit 내역을 깔끔하게 관리할 수 있다.

main branch와 login을 구현한 login branch가 있다고 생각해보자.
login 구현을 확인해 본 결과 문제가 없어서 main branch와 병합하고 싶다.
그런데 merge를 이용해서 병합하면 branch 두 개가 계속 뻗어나가는 형태로 이어질 것이다.
그래서 특정 시점으로 부터 branch가 가르키는 곳을 변경하는 rebase를 사용해서 commit 내역을 깔끔하게 관리하는 것이다.

과정은 아래와 같다.
switch 명령어를 이용해서 아래와 같이 login branch로 이동시킨다. (checkout 명령어를 사용해도 됨)

git swith login

이 상태에서 main branch를 login branch와 rebase를 이용해서 병합하려면 아래와 같이 명령어를 입력하면 된다.

git rebase main login

그림으로 보면 아래와 같다.

그림 1 - Git Merge example

그림 2 - Git Rebase example

사진 출처: Git Merge vs Git Rebase

profile
두려움 없이

0개의 댓글