프로젝트에 부트스트랩 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 stash
git rebase --continue
리베이스 작업을 종료한다.git diff HEAD~n
: push 전에 변경내역을 확인한다.git push -f origin [branch]
원격 저장소 커밋에 강제로 덮어쓴다.git stash pop
단 git rebase
는 수정 이력이 남지 않기 때문에 다른 사람과 함께 사용하는 공용 저장소에서는 사용하면 안 된다!