[GIT] git commit 취소

seony·2022년 9월 29일
0

git commit을 취소해보자

1. git log을 통해 commit log를 확인

commit 2ec7ad069877542d58ed75ee6b99974b0b28b35e (HEAD -> project_test)
Author: mssong <mssong@sunjesoft.com>
Date:   Thu Sep 29 15:57:55 2022 +0900

    test

commit 2ec7ad069877542d58ed75ee6b99974b0b28b35e (HEAD -> project_session_handle)
Author: mssong <mssong@sunjesoft.com>
Date:   Thu Sep 29 15:57:55 2022 +0900

    test

commit ce0e029a9bff15d90133c4ea951e997955b14df7 (origin/project_test)
......

2. commit을 취소하고자 하는 방법

git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

git reset --soft < commit >

  • commit을 취소하고 해당 파일들을 stated 상태로 워킹 디렉토리에 보존
$ git reset --soft HEAD^

$ git status -uno
현재 브랜치 project_test
브랜치가 'origin/project_test'보다 1개 커밋만큼 앞에 있습니다.
  (로컬에 있는 커밋을 제출하려면 "git push"를 사용하십시오)

커밋할 변경 사항:
  (스테이지에서 제외하려면 "git restore --staged <file>..."을 사용하시오)
        새 파일:       test
        새 파일:       test1

추적하지 않는 파일을 보지 않습니다 (추적하지 않는 파일을 보려면 -u 옵션을 사용하십시오)

git reset --mixed < commit >

  • commit을 취소하고 해당 파일들을 unstaged 상태로 워킹 디렉토리에 보존
$ git reset --mixed HEAD^

$ git status -uno
현재 브랜치 project_test
브랜치가 'origin/project_test'보다 1개 커밋만큼 앞에 있습니다.
  (로컬에 있는 커밋을 제출하려면 "git push"를 사용하십시오)

커밋할 사항 없음 (추적하지 않는 파일을 보려면 -u 옵션을 사용하십시오)

$ ls test test1
test  test1

git reset < commit >

  • git reset --mixed와 동일하게 commit을 취소하고 해당 파일들을 unstaged 상태로 워킹 디렉토리에 보존
$ git reset HEAD^

$ git status -uno
현재 브랜치 project_test
브랜치가 'origin/project_test'보다 1개 커밋만큼 앞에 있습니다.
  (로컬에 있는 커밋을 제출하려면 "git push"를 사용하십시오)

커밋할 사항 없음 (추적하지 않는 파일을 보려면 -u 옵션을 사용하십시오)

$ ls test test1
test  test1

git reset --hard < commit >

  • commit을 취소하고 해당 파일들을 unstaged 상태로 워킹 디렉토리에서 삭제
$ git reset --hard HEAD^
HEAD의 현재 위치는 835eb403a7입니다 test0

$ ls test test1
ls: 'test'에 접근할 수 없습니다: 그런 파일이나 디렉터리가 없습니다
ls: 'test1'에 접근할 수 없습니다: 그런 파일이나 디렉터리가 없습니다
profile
Developer

0개의 댓글

관련 채용 정보