git

[git] remote repo commit 삭제하기

jiheek 2022. 3. 21. 15:48

삭제하고 싶은 commit을 이미 push로 remote 저장소에 올려버렸을 때 시간을 되돌리는법. 

 

1. git log

local에서 먼저 돌아가고 싶은 commit을 찾는다. 

git log

2. git reset --hard HEAD~1

뜻: 가장 최근의 커밋 하나를 삭제한다.

HEAD~n에서 n은 가장 최근의 커밋부터 몇 개를 삭제할지를 나타낸다. HEAD~2는 두 개의 커밋을 삭제.

삭제 후 git log를 확인하면 HEAD가 바뀐 것을 확인할 수 있다. >>를 캡쳐하려고 했는데 깜빡했다 ㅠㅠ

 

삭제할 커밋 수가 많지 않다면 하나씩 삭제하고 log를 확인하며 삭제를 진행하는 것이 안전하다.

 

3. git push -f

fast forward 관계가 아닌 push이기 때문에 강제로 (--force) 내 원격 저장소로 push해야 한다.

push를 하고 github의 저장소를 확인하면 커밋이 삭제된 것을 확인할 수 있다.

 

 

 

  • 세줄요약
git log
git reset --hard HEAD~1
git push -f

 

 


Fast forward에 대한 설명은 아래 블로그에 잘 나와있다.

https://minemanemo.tistory.com/46

 

[GIT] 병합(merge) 종류 별 완벽 설명

조금 더 케이스를 상세하게 다시 포스팅 해보았습니다 https://minemanemo.tistory.com/157 [Git] merge와 rebase - (1) 주요 개념 및 예시 목차 목차 🤓 개요 🥶 중요 개념: Fast-Forward 관계란? 🥸 merge와 reb..

minemanemo.tistory.com

 

'git' 카테고리의 다른 글

[git] merge 충돌 에러  (0) 2022.05.18
[git] git status, staging area  (0) 2022.03.21
[git] Fork 협업 플로우  (0) 2022.03.21
[git] Forked repo에서 origin repo pull하기  (0) 2022.03.08
[git] .gitignore 파일/폴더 ignore하기  (0) 2022.03.04