[Github] 이미 push된 commit 수정하기

나영·2023년 4월 17일
post-thumbnail

인간은 같은 실수를 반복한다 ...😩
push 하기 전 커밋을 수정하는 방법은 많지만 이미 push가 된 상태에서 커밋을 수정해야 한다면 ..?

1. rebase로 에디터 들어가기

git rebase HEAD~[거슬러 올라가고 싶은 커밋 수] -i
  • 예를 들어, 바로 직전 커밋의 메세지를 재작성하길 원한다면 HEAD~1, 그 전이면 HEAD~2 등등 ..

💥 여기서 내가 겪었던 오류

1. git rebase HEAD~1 -i
fatal: invalid upstream 'HEAD~1'

💫 해결 : git rebase -i --root (루트로 이동)

2. git rebase HEAD~1 -i
error: cannot rebase: You have unstaged changes.
error: Please commit or stash them.
💫 해결 : git stash (변경된 내용 임시 저장)

2. 에디터의 pick -> reword로

에디터에서 i 누르고 커밋 메시지 창의 맨 윗줄의 pick -> reword로 변경,

:wq 로 저장 후 빠져나옴.

3. commit message 수정

다시 커밋 메시지 등장하게 되는데, 이때 원하는 메시지로 수정,

:wq 로 저장 후 빠져나옴.

4. 강제 (force) push

이미 push된 커밋이므로 강제 push 진행

git push origin [브랜치명] -f
git push origin [브랜치명] -force

이렇게 하면 전의 커밋 기록은 사라지고 새롭게 수정된 커밋 기록만 남게 됨. 😌

⚠️ 주의사항

rebase로 commit 내용을 바꿀 경우 commit id와 시간이 달라짐. 따라서 다른 사람들과 협업 시에는 문제가 생길 수 있음. 직전 commit, 또는 개인 프로젝트 정도가 아니면 최대한 사용을 피하는게 좋음..!


참고자료

0개의 댓글