rebase 리베이스
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| $ git rebase -i --root
$ git rebase --continue
$ git rebase --abort
$ git reset --hard HEAD~1 $ git reset --hard origin/master
:wq -> write and quit(저장하고 나가기의 줄임말)
|
리베이스 예시 : 커밋추가
가장 오래된 것부터 두번째 커밋 이후에 새로운 커밋 3개 추가하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| $ git rebase -i --root
$ touch 새로운파일1.txt $ git add 새로운파일1.txt $ git commit -n "Added 새로운파일1"
$ touch 새로운파일2.txt $ git add 새로운파일2.txt $ git commit -n "Added 새로운파일2"
$ touch 새로운파일3.txt $ git add 새로운파일3.txt $ git commit -n "Added 새로운파일3"
$ git log --oneline
$ git rebase --continue
$ git shortlog $ git log --oneline $ gitk
|
리베이스 예시 : 커밋수정
위에서 추가한 커밋 1번2번3번 중에 2번과 3번을 커밋을 한 개로 합치고 싶다면?
rebase -i --root
에서 커밋3번에 pick을 edit로 변경해야한다.
- 그 뒤 커밋 3번을
reset --soft HEAD~1
를 해주면 커밋에서는 사라졌지만 파일은 남아있다.
commit --amend
를 해주면 커밋3번이 커밋2번에 흡수된다.
show 커밋ID
를 검색하면 2번과 3번이 합쳐진것을 볼 수 있다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| $ git rebase -i --root
$ git log --oneline
$ git reset --soft HEAD~1 $ git status
$ git commit --amend $ git show 커밋ID
$ git rebase --continue
$ git log --oneline $ git show 합쳐진commitID
|
리베이스 예시 : 커밋삭제
가장 오래된 것부터 두번째 커밋 “Add secondCommit” 삭제하려면?
1 2 3 4 5 6 7 8 9 10
| $ git rebase -1 -root
$ git status $ git reset --hard HEAD~1 $ git rebase --continue
$ git log --oneline $ git shortlog $ gitk
|