본문 바로가기
GIT

git rebase -i로 이전 커밋들 수정하기

by 코드뭉치 2023. 5. 30.

수정을 원하는 커밋의 이전 커밋 해시를 입력해서 커밋을 수정할 수 있다.

git rebase -i <커밋 해시>

해당 명령어 입력 시 터미널에서 vim에디터 출력

pick <커밋 해시> <커밋 이름>
pick <커밋 해시> <커밋 이름>
pick <커밋 해시> <커밋 이름>
pick <커밋 해시> <커밋 이름>
 ...
 

commands:
#명령어들
..
..

vim 에디터에서 i키(insert)를 눌러서 INSERT 모드에 들어간 뒤, 수정할 수 있다.

이후 :wq를 입력해 저장 후 종료

 

 

1️⃣ pick

> 해당 커밋 수정없이 사용할 것.

커밋 순서를 서로 변경해놓으면 변경된 순서가 적용되어진다.

커밋을 지우면 해당 커밋이 삭제된다.

 

 

2️⃣ reword

reword <커밋해시> <커밋이름>

로 해놓고 vim을 종료하면,

vim에서 해당 커밋의 커밋 메시지를 수정할 수 있다.

 

 

3️⃣ edit

edit <커밋해시> <커밋이름>

로 해놓고 vim을 종료하면,

해당 커밋으로 HEAD가 옮겨진다.

git commit --amend

를 통해 커밋 메시지를 수정.

> reword 명령어처럼 커밋 메시지를 수정할 수 있는 vim이 나온다. 동일하게 커밋 메시지 수정.

 

커밋 사이에 새로운 커밋을 추가하려면 이 상태에서 새로운 커밋을 생성해주면 된다.

 

수정이 완료되면 아래 명령어를 입력해 진행하면 된다.

git rebase --continue

 

 

4️⃣ squash, fixup

squash <커밋해시> <커밋이름>
   	  # or
fixup <커밋해시> <커밋이름>

squash는 해당 커밋을 다음 커밋에 합쳐준다. 커밋 메시지도 합쳐져서 확인할 수 있다.

 

fixup은 커밋을 합치지만, 이전의 커밋 메시지만 남긴다.

 

 

5️⃣drop

drop <커밋해시> <커밋이름>

해당 커밋을 삭제, 커밋이 완전히 삭제된다.

 

 

'GIT' 카테고리의 다른 글

GIT - 브랜치 보호하기(Review Approving)  (1) 2023.04.13

댓글