티스토리 뷰

Introduction

전에 commit 하였던 message가 다시 보니 마음에 들지 않아 수정을 해야겠다는 생각을 하였습니다. 가장 최근에 commit을 했다면 git commit --amend 를 통해 수정을 할 수 있었겠지만 가장 최근에 한 것이 아닌 HEAD로부터 3번째 항목이이서 다른 방법을 통해 수정을 해야만 했습니다.

git rebase -i HEAD~[number]

git rebase -i HEAD~5

git rebase -i HEAD~5 명령어를 입력하면 위 사진과 같은 화면이 나옵니다.

HEAD는 첫 번째를 의미하고 5는 HEAD를 포함하여 시작하여 5번째 commit 항목을 의미합니다. 여기서 3번째 항목의 commit message를 바꾸기 위하여 pickedit 으로 수정을 합니다.

pick -> edit

pick 에서 edit 으로 수정을 마친후 vim 에디터를 사용 중이므로 :wq 를 통해서 저장 후 빠져나옵니다.

빠져나온다면 위와 같은 화면을 보실 수 있습니다. master- 87760db >R> 로 바뀐 것을 볼 수 있습니다. 그리고 git commit --amend 를 통해 edit 한 항목에 대해 수정을 하고 git rebase --continue 를 하면 된다는 것 또한 알 수 있습니다.

git commit --amend

git commit --amend

기존에는 가장 최근 commit message를 수정할 때 사용하였으나 git rebase -i HEAD~5 를 통해 pickedit 으로 수정하였으므로 이에 대해 수정을 할 수 있습니다. 자신이 수정하고 싶은 message를 입력하고 :wq를 통해 저장후 빠져나옵니다.

git rebase --continue

git rebase --continue

git rebase --continue 를 통해 커밋을 적용시킵니다. 다른 항목을 수정하고 싶다면 위와 같은 과정을 반복하면 됩니다.

git log --stat

git log --stat | gst

git log --statgst를 통해 log를 확인해보니 정상적으로 수정을 완료하였다는 것을 알 수 있습니다.

git push --force origin master

git push --force origin master

이미 github에 push한 상태로 commit message를 수정한 것이므로 git push --force origin master를 통해 다시 push를 함으로써 재정렬해줍니다.

conclusion

해당하는 github repository로 이동을 해보니 제가 원하는대로 commit message가 변경된 것을 알 수 있었습니다.

참고 : git-scm

댓글