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
결과)
'Git' 카테고리의 다른 글
[Git] 커밋하지 않은 변경사항 되돌리기 git restore (0) | 2023.09.04 |
---|---|
[Git] 관리되지 않는 파일들 삭제하기 git clean (0) | 2023.08.18 |
[Git] 커밋 수정하기 git --amend (0) | 2023.08.17 |
[Git] 커밋하기 애매한 변화 치워두기 git stash (0) | 2023.08.17 |
[Git] 한 파일에서 일부 내용만 git add 하기(hunk별로 스테이징하기) git add -p (0) | 2023.08.16 |