git commit --fixup으로 이전 커밋 고치기
조회 1 · 댓글 0
리뷰 지적을 반영하다 보면 몇 커밋 전 내용을 손봐야 할 때가 있습니다. 이걸 별도 커밋으로 쌓으면 히스토리가 지저분해지는데, git commit --fixup과 rebase --autosquash를 쓰면 대상 커밋에 자동으로 합쳐집니다. 인터랙티브 rebase에서 todo 순서를 손으로 바꾸던 작업을 안 해도 됩니다.
고칠 내용을 스테이징한 뒤 대상 커밋을 지정해 fixup 커밋을 만들고, autosquash로 rebase 하면 됩니다. 만들어진 커밋은 제목이 fixup! 원래 커밋 제목 형태가 되고, rebase가 이걸 대상 바로 뒤로 옮겨 fixup 액션으로 바꿔줍니다.
git add -p
git commit --fixup=<commit>
git rebase -i --autosquash <commit>^내용은 그대로 두고 메시지만 고치려면 --fixup=reword:<commit>, 내용과 메시지를 같이 바꾸려면 --fixup=amend:<commit>를 씁니다. autosquash를 매번 붙이기 귀찮으면 git config --global rebase.autoSquash true로 켜둘 수 있습니다(기본값은 false). 단 rebase는 히스토리를 다시 쓰므로 이미 공유 브랜치에 푸시한 커밋에는 쓰지 마십시오.
로그인 후 답글을 남길 수 있습니다.