봄과 함께하는 프로젝트/git
Git commit 취소하기
코린이딱콩
2022. 9. 10. 01:12
commit 취소하기
commit을 취소해야 하는 상황이 생길때가 있다.
commit을 일찍 한 경우, 아니면 어떤 파일을 빼먹고 commit을 한 경우
이때 git reset HEAD^ 명령어를 통해 commit을 취소할 수 있다!
// commit 목록 확인
git log
//방법1 commit을 취소하고 해당 파일들은 staged상태로 워킹 디렉터리에 보존
git reset --soft HEAD^
//방법2 commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에 보존
git reset --mixed HEAD^ //기본 옵션
git reset HEAD^ //위와 동일
git reset HEAD~2 //마지막 2개의 commit을 취소
//방법3 commit을 취소하고 해당 파일들은 unstaged 상태로 워킹 디렉터리에서 삭제
git reset --hard HEAD^
git reset 명령은 아래의 옵션과 관련해서 주의하여 사용해야한다.
reset 옵션
-soft : index보존 (add한 상태, staged상태), 워킹 디렉터리의 파일 보존 즉 모두 보존
-mixed: index 취소( add하기 전 상태, unstaged상태) , 워킹 디렉터리의 파일 보존(기본옵션)
-hard: index취소(add하기 전 상태, unstaged상태), 워킹 디렉터리의 파일 삭제 즉 모두 취소
만약 워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌리고 싶으면, 아래의 명령어를 사용한다.
단, 이 명령을 사용하면 원격 저장소에 있는 마지막 commit 이후의 워킹 디렉터리와 add했던 파일들이 모두 사라지므로 주의해야 한다.
//워킹 디렉터리를 원격 저장소의 마지막 commit 상태로 되돌린다.
git reset --hard HEAD