본문 바로가기
Git/with Remote

원격 저장소에 올라간 커밋 제거

by BAYABA 2021. 10. 10.
  1. 개인 공부 목적으로 작성한 글입니다.
  2. 아래 출처를 참고하여 작성하였습니다.

목차

  1. Intro
  2. 로컬에서 되돌리고 싶은 커밋으로 이동하기
  3. 원격 저장소에 강제로 push
  4. 주의사항

1. Intro

  1. 원격 저장소에 올라간 커밋을 제거(되돌리기)하는 방법에 대해 알아보겠습니다.
  • 이미 원격저장소(깃허브)로 push 해버린 경우에는 로컬에서 커밋을 되돌린 후에 강제로 push를 해야합니다.

2. 로컬에서 되돌리고 싶은 커밋으로 이동하기

  1. 우선 로컬에서 되돌리고 싶은 커밋으로 가기 위해 아래와 같은 명령어를 입력해줍니다.
$ git reset --hard HEAD^   # case1. 바로 이전 커밋으로 돌아감

$ git reset --hard HEAD~n  # case2. 위에서부터 n만큼 아래의 커밋으로 돌아감 (n대신에 숫자 넣기)

3. 원격 저장소에 강제로 push

  1. 그 다음, 아래의 명령어를 입력해 원격저장소에 강제로 push합니다.
$ git push -f origin master

4. 주의사항

  1. 이 방법을 이용하면 원격 저장소에 흔적도 없이 제가 만들었던 커밋들을 제거할 수 있습니다.
  2. 하지만 해당 브랜치가 팀원들과 공유하는 브랜치이고, 제가 커밋을 되돌리기 전에 다른 팀원이 제가 작성한 커밋들을 이미 pull로 땡겨갔다면, 그때부터 다른 팀원의 로컬 저장소에는 제가 되돌린(없애버린) 커밋들이 남아있게 됩니다.
  • 저로 인해 그 커밋들이 되돌려진 사실을 모르는 팀원은 자신이 작업한 커밋들과 함께 push할 것이고, 그 때 제가 되돌렸던 커밋들이 다시 원격 저장소에 추가되게 됩니다.
  1. 따라서 이 방법은 다른 팀원이 제가 되돌린 커밋을 pull 하지 않았다고 확신할 수 있는 경우에만 사용해야 합니다.
  • 나 혼자만 사용하는 브랜치에 커밋을 push하였고, 이를 되돌리고 싶은 경우
  • 팀원들과 직접 커뮤니케이션해서 내가 되돌린 커밋을 pull로 땡겨간 팀원이 없다고 확인된 경우
  • 위와 같은 경우에는 안전하고 간편하게 사용할 수 있는 방법입니다.

출처

  1. [Git] 깃 원격저장소(깃허브)에 올라간 커밋 제거(되돌리기)
  2. GitHub 원격저장소 히스토리 삭제하기

'Git > with Remote' 카테고리의 다른 글

Git revert  (0) 2021.10.23
원격 저장소 브랜치 삭제 (delete remote branch)  (0) 2021.10.10
Remote Branch 가져오기 (master 제외)  (0) 2021.10.10