Post

git rebase

실습 환경: Mac OS & zsh with oh-my-zsh

이번 내용은 git merge-2 와 이어지는 내용입니다.

이번엔 git rebase 를 살펴봅시다!

git rebase 를 이용해 merge 해보도록 하겠습니다.
현재 branch 상황

목표 branch 상황

hotfix2 merge 되돌리기

현재 branch 상황

hotfix3 branch 변경 후 commit 하기

변경 전 new1.py

변경 후 new1.py

add & commit

hotfix3 branch 에서 git log –graph 실행 결과

new1.py 한 번 더 수정

add & commit

hotfix3 branch 에서 gitlog –graph 실행 결과

변경 전 master branch new1.py

변경 후 master branch new1.py

add & commit

master branch 에서 git log 실행 결과

현재 branch 상황

원하는 branch 상황

git rebase 사용

1. git checkout hotfix3 & git rebase master

충돌 발생!!

  • 충돌이 발생합니다. hotfix3 branch 에서 변경한 new1.py 와 master branch 에서 변경한 new1.py 가 다르기 때문에 충돌이 발생합니다.

new1.py파일에 가서 충돌을 해결합시다.
충돌 후 hotfix3 branch new1.py

수정 후 hotfix3 branch new1.py

git add & git rebase –continue

두번째 충돌 후 hotfix3 branch new1.py

수정 후 hotfix3 branch new1.py

new.1py 변경 확인

add & rebase –conitnue

hotfix3 branch 에서 git log 실행 결과

master branch 에서 git log 실행 결과

아직까지 merge 안됨!!

git merge hotfix3 –no-ff

merge 할때 commit message

merge 완료!

merge 후 master branch 에서 git log 실행 결과

현재 branch 상황

git rebase -i <구역>

merge 후 commit message 를 합쳐줍니다.
git rebase -i 하기 전 git log

pick = 남기기 / fixup = 버리기

수정 후 저장

완료!

git rebase -i HEAD~~ 실행 후 git log

  • fixup 한 “2nd update new1.py in hotfix3” 의 commit 이 사라진것을 확인할 수 있습니다.
This post is licensed under CC BY 4.0 by the author.

Trending Tags