본문 바로가기
Git

[Git] 과거의 커밋들을 수정, 삭제, 병합, 분할하기 git rebase -i

by 설총이 2023. 8. 17.
git rebase -i (대상 바로 이전 커밋)
과거 커밋 내역을 다양한 방법으로 수정하는 명령어

p, pick 커밋 그대로 두기
r, reword 커밋 메시지 변경
e, edit 수정을 위해 정지
d, drop 커밋 삭제
s, squash 이전 커밋에 합치기

 

예제) https://github.com/seypak/git-interactive

- git commit 내역 확인

 

다음의 수정사항들 진행해보기

1. 횻홍 -> 버그 수정으로 변경

Step1) 수정대상의 이전 버전의 커밋해시로 선택

git rebase -i 25b1bb1
(r 명령어 사용)

 

Step2) vi 에디터에서 pick 1c799ad -> r 1c799ad 로 수정 후 wq
Step3) 횻횽 -> 버그 수정 으로 수정 후 wq

결과)

Step1) 수정대상의 이전 버전의 커밋해시로 선택

git rebase -i 3f2a3f0
(d,s 명령어 사용)

2. 뻘짓 커밋 삭제
  • d 명령어 사용
  • Step2) vi 에디터에서 7da5140 pick -> d 수정

 

3. 결전의 찜질망 항목들 합치기
  • 첫 항목 뒤로 s 명령어 사용
  • Step3) vi 에디터에서 6a64b45 pick -> s 수정
  • 메시지 수정 후 저장하면 항목들 합칠때 어떤 commit 내용으로 수정할건지 vi 에디터가 뜬다.

Step4) 두개 커밋메시지 중 추가완료를 삭제하고 추가중 -> 추가로 변경후 저장

결과)

 

4. 캐릭터 귤맨 추가, 시작메뉴 디자인 변경 항목 나누기

Step1) 수정대상의 이전 버전의 커밋해시로 선택

git rebase -i ca14a4b

 

  • Step2) e 명령어로 수정 시작

 

  • Step3) git reset HEAD~

  • git status

  • Step4) 변화들을 따로 스테이지 및 커밋

git add file-3.txt
git commit -m '캐릭터 귤맨 추가'
git add file-4.txt
git commit -m '시작메뉴 디자인 변경'

 

  • Step5) git rebase --continue

결과)