프로젝트에 부트스트랩 5 커스터마이징을 적용한 뒤 커밋을 하고 원격 저장소에 push를 했다. 그런데 이어서 작업하다보니 .gitignore를 수정하는 것을 깜박했다는 걸 뒤늦게 알게되었다. 부트스트랩의 원본 SCSS 파일(/node_modules)은 git으로 추적할 필요가 없기 때문이다.
이미 원격 저장소로 커밋이 올라가 버렸지만 한 줄 짜리 작업이라 따로 커밋하기도 그렇고, 다른 커밋과 합치기에는 너무 성격이 달랐다. 원격 저장소이기는 하지만 어차피 혼자 쓰는 저장소니까 그냥 수정하기로 했다.
git stash로 현재 워킹트리를 별도 공간에 보관해 놓는다.git pull origin [branch]로 원격 저장소 최신 정보를 가져온다.git rebase -i HEAD~n 수정할 커밋을 탐색한다.pick → e로 변경한다.git stash pop → git add .gitignore 누락한 파일을 꺼낸다.git commit —amend 커밋을 덮어쓴다.git stashgit rebase --continue 리베이스 작업을 종료한다.git diff HEAD~n : push 전에 변경내역을 확인한다.git push -f origin [branch] 원격 저장소 커밋에 강제로 덮어쓴다.git stash pop단 git rebase는 수정 이력이 남지 않기 때문에 다른 사람과 함께 사용하는 공용 저장소에서는 사용하면 안 된다!