원격 저장소에 올라간 커밋 되돌리기

SangBooom·2021년 1월 31일
0

먼저 로컬에서 $ git reset 명령어를 이용해 내가 되돌리고 싶은 커밋들을 되돌린다.

$ git reset --hard HEAD~1

HEAD~1은 가장 최근 커밋내역, HEAD~2는 가장 최근에서 두번째 커밋


그리고 난 후, $ git push를 실행하면

$ git push origin master

아래와 같은 에러 문구가 나타날 것이다.

로컬 저장소의 커밋 히스토리가 원격 저장소의 커밋 히스토리보다 뒤쳐져 있는데 푸시를 하였으므로 발생하는 에러이다. 하지만 지금 우리가 원하는 것은 이 뒤쳐져 있는 로컬 저장소의 커밋 히스토리를 원격 저장소의 커밋 히스토리로 강제로 덮어쓰는 것이므로 이를 위한 옵션 -f 또는 --force 를 명령어에 추가하여야 한다.

$ git push -f origin master

GitHub 페이지를 통해 원격 저장소에서의 커밋이 되돌려졌음을 확인할 수 있다.

⚠ 주의사항

이 방법은 다른 팀원이 내가 되돌린 커밋들을 pull로 땡겨가지 않았다고 확신할 수 있는 경우,
예를 들어,

  • 나 혼자만 사용하는 브랜치에 커밋을 push하였고, 이를 되돌리고 싶은 경우
  • 팀원들과 직접 커뮤니케이션해서 내가 되돌린 커밋을 pull로 땡겨간 팀원이 없다고 확인된 경우

이러한 경우에는 안전하고 간편하게 사용할 수 있는 방법이다.

profile
끊임없이 떨어지는 물방울이 바위를 뚫는다

0개의 댓글