가끔 실수로 commit을 한다거나 git push에서 오류가 났을 경우
git commit을 취소해야 하는데 생각보다 명령어를 자주 써서 작성하고자 합니다.
간단하게 정리하면 다음과 같습니다.
git reset -soft : index 보존(add한 상태, staged 상태), 워킹 디렉토리의 파일 보존, 즉 모두 보존되어 있음
git reset -mixed : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉토리의 파일 보존, 즉 수정한 부분은 보존
git reset -hard : index 취소(add하기 전 상태, unstaged 상태), 워킹 디렉토리의 파일 삭제, 즉 수정한 부분또한 삭제
다음은 예제입니다.
git log : commit 목록을 확인한다.
git log --oneline : commit 목록을 한줄로 확인한다.
git reset HEAD^ : 최근 1개의 커밋을 되돌린다.
git reset HEAD~3 : 최근 3개의 커밋을 되돌린다.
git log --oneline을 입력했을 경우 아래와 같이 출력됩니다.
C4 commit-message
C3 commit-message
C2 commit-message
이때 C4의 커밋이 잘못되어 C3으로 가야하는 경우 아래의 명령어를 실행합니다.
git reset --mixed c3 : c3 커밋으로 돌아간다.
이런식으로 git commit을 취소하거나 되돌릴 수 있기에 정확히 사용하시길 바랍니다.
참고로 git reset의 default옵션은 --mixed이기에 따로 옵션을 주지 않아도 됩니다.
'분리수거' 카테고리의 다른 글
ERROR: "docker buildx build" requires exactly 1 argument. (0) | 2024.05.22 |
---|---|
fatal: The remote end hung up unexpectedly (0) | 2022.05.27 |