[Git & GitHub] commit message 수정하기

Nakyeong Lee·2023년 10월 17일

Git & GitHub

목록 보기
2/3
post-thumbnail

Index

🐰 가장 최근의 커밋 메세지 수정하기
    🥕 이미 git push된 경우라면
🐻 오래된 커밋 메세지 / 여러 커밋 메세지 수정하기
    🍯 이미 git push된 경우라면


git log --oneline 명령어를 사용하면 다음과 같이 커밋메세지를 확인할 수 있습니다. 여기서 가장 최근 커밋 메세지를 수정하는 방법, 가장 최근 커밋이 아닐 때, 혹은 여러 커밋을 한번에 수정하고 싶을 때 수정하는 방법으로 경우를 나눠서 알아보도록 하겠습니다.

🐰 가장 최근의 커밋 메세지 수정하기

터미널(git bash)에서 git commit --amend를 입력해주면 다음과 같은 화면이 뜹니다.

여기서 a키를 누르면 수정할 수 있게 되고, 노란 글자 부분만 원하는 커밋 메세지로 바꿔 적어주면 됩니다. 수정이 완료됐다면 esc를 누르고 :wq를 하단에 입력 후 Enter키를 눌러줍니다.
여기서 a, :wq 등에 관하여 궁금하다면 "vi 편집기"를 구글링해보세요!!

수정이 끝난 후 vi 편집기를 닫아주면 다음과 같이 잘 수정됐다~는 메세지를 볼 수 있습니다. 해당 예에서는 'feat:file_c''[FEAT] file_c 추가'로 변경된걸 확인할 수 있습니다. 한번 더 확인해보고 싶다면 git log --oneline 명령어 입력해보기!!

🥕 이미 git push된 경우라면

git push --force-with-lease origin (브랜치명) 명령어를 통해 원격에도 변경된 커밋 메세지를 적용할 수 있습니다. 터미널에서 명령어 작성 후 깃허브에 들어가보면 변경 적용된 커밋 메세지를 확인할 수 있게 됩니다.

🐻 오래된 커밋 메세지 / 여러 커밋 메세지 수정하기

하지만 변경하고 싶은 커밋 메세지가 가장 최근의 커밋이 아닐 수도 있겠죠? 이 방법을 사용하면 이전의 커밋 메세지를 수정할 수 있을 뿐 아니라 여러 커밋 메세지를 한번에 수정할 수 있습니다.

해당 git log를 봤을 때, 'feat: file_a'까지 고치고 싶다, 하면 git rebase -i HEAD~3 명령어를 사용하면 됩니다. 즉, git rebase -i HEAD~n(: n번째 줄 커밋까지 변경) 명령어로 vi 편집기에 들어갈 수 있습니다. 여기서 명령어를 사용하면 git log의 첫번째([FEAT] file_c 추가)부터 세번째(feat: file_a)까지 수정할 수 있게 되는건데요, 열린 vi 편집기를 봅시다!

여기서 a키를 누르면 수정할 수 있게 되고, 변경하고 싶은 커밋의 초록 글자 부분만 pick에서 reword로 변경해주면 됩니다. 수정이 완료됐다면 esc를 누르고 :wq를 하단에 입력 후 Enter키를 눌러줍니다. 여기서 a, :wq 등에 관하여 궁금하다면 "vi 편집기"를 구글링해보세요!!
해당 예시에서는 'feat: file_a'와 'feat: file_b'만 수정해줄 것이기 때문에 두 로그만 reword로 바꿔주도록 하겠습니다.

이와 같이 변경해주고 :wq + Enter를 통해 편집기를 나오면 바로 다음 vi 편집기로 넘어가게 됩니다.
(**각 커밋의 SHA-1 체크섬은 변경한 것이 아닙니다! 후에 수정하는 과정에서 변경된 것)


여기서도 a키를 눌러 insert 모드로 전환한 뒤 노란 글자 부분, 즉 커밋 메세지를 원하는 대로 수정하고 esc를 누른 후 :wq + Enter를 눌러 나와줍니다. 이런 작업을 자신이 reword로 바꾼만큼 반복하고 나면 git log --oneline으로 log 기록 확인 시, 변경된 커밋 메세지가 적용된 것을 확인할 수 있습니다.

🍯 이미 git push된 경우라면

git push --force origin (브랜치명) 명령어를 통해 원격에도 변경된 커밋 메세지를 적용할 수 있습니다. 터미널에서 명령어 작성 후 깃허브에 들어가보면 변경 적용된 커밋 메세지를 확인할 수 있게 됩니다.

🔗GitHub 공식문서에서 더 정확하게 읽어보고 싶다면!

profile
Web Backend Developer

0개의 댓글