[Git]커밋 메시지 변경

Ming·2022년 11월 6일
1
post-thumbnail

push 전 commit 메시지 변경

가장 최근 commit 수정

git commit --amend

명령어를 입력하면 다음과 같은 화면을 볼 수 있다.

i를 입력해서 INSERT 모드로 바꾼 후 커밋 메시지를 수정하면 된다.
저장을 할 때는 esc->:wq를 입력해주면 된다. 수정하지 않고 종료할 때는 :q를 입력해주면 된다.

여러 commit 수정

  • commit 목록

    git log

    로그에서 지금까지 커밋들을 확인 후 어떤 커밋을 수정할 것인지 확인을 한다. 두번째 커밋을 수정하고 싶다면 아래 명령어를 입력한다.

  • 수정할 commit 선택

    git rebase -i HEAD~3 

    가장 최근 commit 2개를 보여준다. 수정하고 싶은 커밋 옆의 pick을 reword로 바꾼 후(i를 입력해 수정모드로 변경) esc->:wq로 저장해준다. 이러면 수정할 커밋 창이 순서대로 띄워진다. 커밋 메시지를 수정하고 저장을 한다. git log를 통해 수정이 된 것을 확인할 수 있다.

💡 commit 하지 않은 파일이 있는 경우

error: cannot rebase: You have unstaged changes.
error: Please commit or stash them.

커밋을 하지 않은 파일이 있는 경우 위와 같은 error가 발생한다. 이 경우는 저장을 해야하는 경우는 commit을 하거나 git stash로 변경사항을 임시저장하면 된다.

  • git stash
    아직 마무리하지 않은 작업을 스택에 잠시 저장할 수 있도록 하는 명령어이다. 아직 완료하지 않은 일을 commit 하지 않고 나중에 다시 꺼내와 마무리할 수 있다.
    git stash
    git stash save
    위의 명령어 중 하나를 실행하면 새로운 stash가 만들어지고 working directory가 깨끗해진다. 이제 다시 새로운 브랜치를 생성할 수 있고 commit 메시지를 수정할 수 있다.
  • git stash 목록
    git stash list
  • 임시저장한 내용을 다시 가져오기
    //가장 최근의 stash를 가져와서 적용
    git stash apply
    //stash 이름에 해당하는 stash를 적용
    git stash apply [stash 이름]
  • stash 제거하기
    //가장 최근 stash 제거
    git stash drop
    //stash 이름에 해당하는 stash 제거
    git stash drop [stash 이름]

push 후 commit 메시지 변경

커밋을 이미 push 해 remote에 올린 상황인 경우는 push하기 전과 동일하게 commit 메시지를 수정한 후 force를 통해 수정된 커밋을 강제로 push 해 주어야한다.

git push -force 브랜치 이름
git push -f origin main

하지만 이런 상황을 최대한 자제해야한다. push된 커밋 로그를 갖고 있던 다른 팀원들이 로그를 수동으로 수정해주어야하는 상황이 발생하기 때문이다. 그렇기 때문에 push를 하기 전에는 신중해야한다.

0개의 댓글