Git commit 되돌리기

eomcri·2025년 2월 25일

이 글은 Git 사용 시에 commit을 잘못했을 때 이전 상태로 되돌리는 방법에 대한 내용을 다루고 있습니다.

오늘 프로젝트를 진행하는 중에 기존의 작업 내용을 develop 브랜치에 merge하였다. 해당 과정에서 실수로 동일한 에셋을 한번 더 커밋하게 되었는데 해당 과정에서 충돌이 많이 발생하게 되는 문제가 발생하였다.

git reset

해당 문제를 해결하기 위해 검색해본 결과 아래 코드를 통해 커밋을 되돌릴 수 있었다.

git reset --soft HEAD~1

해당 작업을 진행하면 Head와 branch를 커밋이 적용되기 전 커밋으로 이동하게 된다.

git push --force

커밋을 한 뒤 git reset --soft HEAD~1 명령어를 실행하면 로컬 저장소에서는 커밋이 삭제된 상태가 된다. 하지만 원격 저장소에는 여전히 잘못된 커밋이 남아 있으므로 이를 원격 저장소에서도 반영해야 한다.

이를 위해 강제로 원격 저장소를 업데이트하는 git push --force 명령어를 실행한다.

git push --force

이 명령어는 원격 저장소의 기록을 로컬 저장소와 동일한 상태로 만들며, 기존의 잘못된 커밋을 제거할 수 있다.

주의사항

하지만 git push --force를 사용할 경우, 다른 개발자가 해당 브랜치를 공유하고 있다면 문제가 발생할 수 있다. 협업 중이라면 강제 푸시를 사용하기 전에 팀원들과 반드시 상의하는 것이 좋다.

git revert

git reset이 아닌 git revert를 사용하면 커밋을 완전히 제거하는 것이 아니라 새로운 커밋을 생성하여 변경 사항을 되돌릴 수 있다. 협업 환경에서 더 안전하게 사용할 수 있는 방법이다.

git revert HEAD

이 명령어를 실행하면 가장 최근 커밋을 취소하는 새로운 커밋이 생성된다. 이후 git push 명령어를 통해 변경 사항을 원격 저장소에 반영하면 된다.

결론

  • 로컬에서만 되돌릴 경우: git reset --soft HEAD~1
  • 원격 저장소까지 되돌릴 경우: git reset --soft HEAD~1git push --force
  • 협업 환경에서 안전하게 되돌릴 경우: git revert HEAD
profile
게임 개발자가 꿈인 게이머

0개의 댓글