Git&Github

27. [Git] rebase 개념과 기본 사용법

drizzle0925 2021. 9. 1. 09:27
728x90

rebase

m1 베이스를 c에서 t2로 베이스를 변경하는 것을 rebase라고 합니다.

 

rebase를 통해 아래와 같이 바꾸는 것이 rebase의 기본 개념입니다.


실습

 

$ git log --oneline --all --graph

현재 아래와 같은 커밋에서 a1, a2 커밋내용을 b3 뒤로 이동시켜보겠습니다.

 

1. rebase시킬 브랜치로 이동합니다. (a 브랜치로 이동)

$ git checkout a

 

2. rebase 명령어를 입력합니다.

$ git rebase <branch_name>
$ git rebase b

 

3. rebase한 다음 log를 확인해보면 a1, a2가 b3뒤로 이동된 것을 알 수 있습니다.

commit 이력을보면 a1, a2가 각각 다른 커밋 아이디를 가지고 있습니다. b3에서 a1의 변경 내용을 commit 하고 그 뒤에 a2 변경내역을 commit 했다고 보면 됩니다.

 

 

  • rebase는 commit이 로컬에 있을 때 사용해야 합니다. commit을 원격 저장소로 push한 다음에 rebase를 사용하면 엉망진창이 될 가능성이 있습니다.
  • rebase 한 결과와 merge의 결과는 완전히 같아야 합니다. 과정이 다를 뿐 결과는 동일해야 합니다.
  • rebase 할 때 같은 파일이 수정되어 있다면 conflict(충돌)이 발생합니다.
728x90