다음과 같이 프로젝트의 리팩토링을 진행하면서 깃허브 이슈를 활용하여 작업 부분을 계획하고 하위 작업을 추적하고 있었습니다.
작업을 완료하고 push하려던 순간 로컬에 저장된 커밋이 이슈와 엮여있지 않은 것을 확인하였습니다.🥲
remote에 적용된 상황이라면 force pushing을 해주었어야 할텐데 로컬
에서 발견한 게 천만다행입니다. 이번 일을 통해 push하기 전에는 꼭 커밋을 확인하자는 경각심을 갖게 되었습니다.
저는 rebase를 통해서 문제를 해결했습니다.
먼저 git log로 일단 커밋 메세지를 수정해야 할 커밋을 살펴보았습니다. 4개의 커밋 메세지를 수정해야합니다.
git rebase -i HEAD~4
위 명령어를 입력하면 현재 작업중인 브랜치의 가장 최근 commit 4개를 보여주게 됩니다.
다음 vim 화면에서 바꿔줄 커밋의 pick 명령어를 reword
로 수정합니다.
수정하였으면 esc를 누른 후 :wq
로 vim 화면에서 나옵니다. 그러면 커밋을 수정할 수 있는 vim화면이 차례대로 나오게 됩니다.
저는 해쉬태그 + 이슈 넘버를 붙여 커밋과 이슈를 엮어주었습니다. 다시 git log를 살펴보면
잘 바뀐 모습을 확인할 수 있습니다.
push를 해보니 이슈와도 잘 엮였네요!🙂
중간에 작업이 꼬였거나 수정을 취소하고 싶어졌다면 abort를 사용하여 rebase 작업에서 빠져나올 수 있습니다.
abort로 리베이스가 취소된 모습