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

1. git log
local에서 먼저 돌아가고 싶은 commit을 찾는다.
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 |