이번에는 rebase
실습을 해보겠습니다.
일단 git
을 3개 쓰겠습니다. 그리고 rebase
라는 저장소를 만들어 주고 이동해줍니다.
f1.txt
파일을 만들고 add
와 commit
을 해줍니다.
rb
라는 branch
를 만들어 줍니다. -b
를 쓰면 바로 이동할 수 있습니다.
그리고 git log --decorate --all --oneline --graph
를 통해서 현재 상태를 확인해줍시다.
re.txt
라는 파일을 새로 만들고 add
와 commit
을 해줍니다.
한번더 git log --decorate --all --oneline --graph
를 통해서 현재 상태를 확인해줍시다.
한번더 re.txt
를 수정하고 commit
을 한다음에 git log --decorate --all --oneline --graph
를 통해서 현재 상태를 확인해줍시다.
master
로 돌아간 후에 master.txt
를 만들고 add
와 commit
를 해줍니다. 그러면 왼쪽 아래처럼 상태가 변하게 됩니다.
한번더 master.txt
를 수정하고 commit
을 한다음에 상태를 확인하겠습니다. 이제 rebase
를 해봅시다
즉 rb
의 base
인 ee33e86
을 master
의 최신 commit_id
인 95f7ef
로 바꾸겠습니다.
git checkout rb
를 해주고 git rebase master
를 실행해줍니다.
그러면 왼쪽 아래에서 오른쪽 아래로 변하게 됩니다.
잘 보면 rb
는 base
가 ee33e86
였는데 95f7ef
라는 master
의 최신 commit
이 된것을 확인 할 수 있습니다.
rebase
를 한 후에 rb
는 M1
, M2
까지 포함하는 branch
가 되었습니다.
이후 git checkout master
후에 master
에서 rb
를 병합해보겠습니다. 그러면 Fast-forward
라고 뜹니다. 왜냐하면 현재 rb
와 master
는 서로 다른 분기점이 없기 때문에 Three way merge
를 사용하지 않았기 때문입니다.
이제 오른쪽 아래 처럼 master
와 rb
는 같은 commit
을 가르키게 됩니다.
지금까지 rebase
에 대해 실습을 통해 알아보았습니다.
다음에는 rebase
에서 충돌이 발생시 해결하는 방법에 대해 알아보겠습니다.
여기까지 하도록 하겠습니다.