IT 노트/Git

[Git] git commit 또는 push를 취소하고 싶을때

czecze 2021. 9. 21. 07:29

 

// 커밋을 지정해서 취소한다
$ git reset HEAD ●●
// add를 취소, 수정한 내용은 보존된다
$ git reset HEAD
// add를 취고, 수정하기 전으로 되돌린다
$ git reset --hard
// 직전의 commit을 취소, 수정하기 전으로 되돌린다
$ git reset --hard HEAD^
// commit과add를 전부 취소
$ git reset --mixed
// commit만 취소
$ git reset --soft
// --amend를 취소,  ●는 $ git reflog 로 확인
$ git reset --soft HEAD@{●} 

git reset을 취소하기

$ git reflog
f78da58 (HEAD -> develop, upstream/master, origin/master, origin/HEAD, master) HEAD@{0}: reset: moving to HEAD^
00943ac (upstream/develop, origin/develop) HEAD@{1}: pull upstream develop: Fast-forward
f78da58 (HEAD -> develop, upstream/master, origin/master, origin/HEAD, master) HEAD@{2}: checkout: moving from f78da5815d5cbefdcf1e7509d3b2f3b787a77f51 to develop
f78da58 (HEAD -> develop, upstream/master, origin/master, origin/HEAD, master) HEAD@{3}: checkout: moving from master to origin/develop
f78da58 (HEAD -> develop, upstream/master, origin/master, origin/HEAD, master) HEAD@{4}: clone: from {git주소}

내가 리셋한 로그를 확인하고 그 부분을 지정해서 취소

$ git reset --soft HEAD@{0}

실수로master에 push한commit을 취소하고 싶을 때

// 직전의 commit을 확인
$ git log
// 직전의 commit을 취소
$ git reset --hard HEAD^
// 강제적으로 push
$ git push -f origin master

다른 사람의 commit을 삭제하지 않도록 팀플레이 할때는 금지!!

반응형