[Git]커밋 메시지 변경

Ming·2022년 11월 6일
2
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개의 댓글

관련 채용 정보