Git에서 마지막 커밋을 해제하는 방법 [중복]
이 질문에 이미 답변이 있습니다.
git에서 마지막 커밋을 어떻게 해제 할 수 있습니까?
그것은
git reset --hard HEAD
또는
git reset --hard HEAD^
?
"uncommit"이 의미하는 바를 완전히 모르고을 사용하고 싶은지 모르겠다면 git reset
" Revert to a previous Git commit " 을 참조하십시오 .
git reset
더 잘 이해 하려면 " "git reset "이 평범한 영어로 무엇을하는지 설명 할 수 있습니까? "를 참조하십시오.
을 사용하려는 경우 git reset
"uncommit"의 의미에 따라 달라집니다. 수행하려는 모든 작업을 실행 취소하고 나머지는 그대로두면 다음을 사용하십시오.
git reset --soft HEAD^
커밋 작업과 스테이징 한 모든 것을 실행 취소하고 작업 트리 (파일은 그대로 유지)를 유지하려는 경우 :
git reset HEAD^
그리고 실제로 완전히 실행 취소하고 커밋되지 않은 모든 변경 사항을 버리고 모든 것을 이전 커밋으로 재설정 하려면 (원래 질문에서 물었던 것처럼) :
git reset --hard HEAD^
원래 질문은 또한 HEAD^
아닙니다 HEAD
. HEAD
현재 커밋을 참조합니다. 일반적으로 현재 체크 아웃 된 브랜치의 팁입니다. 가 ^
부착 될 수있는 표기법 임의 지정 커밋 수단 "은 이전 커밋". 따라서 마스터 브랜치의 팁 이전 커밋 HEAD^
과 마찬가지로 현재 master^
커밋 이전의 커밋입니다.
다음 은 커밋을 지정하는 모든 방법을 설명 하는 git-rev-parse 문서의 일부입니다 ( ^
여러 가지 중에서 기본적인 것입니다).
실행 취소하려는 커밋의 변경 사항을 유지하려면
git reset --soft HEAD^
실행 취소하려는 커밋에서 변경 사항을 삭제하려면
git reset --hard HEAD^
당신은 또한 말할 수 있습니다
git reset --soft HEAD~2
2 개의 커밋으로 되돌아갑니다.
편집 : charsi가 언급했듯이 Windows를 사용하는 경우 HEAD 또는 커밋 해시를 따옴표로 묶어야합니다.
git reset --soft "HEAD^"
git reset --soft "asdf"
git reset --soft HEAD^
작업 트리에서 수정 된 변경 사항을 유지합니다.
git reset --hard HEAD^
당신이 만든 변화를 버릴 것입니다!
주의 reset --hard
하십시오. 로컬 (커밋되지 않은) 수정 사항도 제거됩니다.
git reset --hard HEAD^
참고 : Windows를 사용하는 경우 HEAD ^를 인용해야합니다.
git reset --hard "HEAD^"
참고 사항-ZSH를 사용 중이고 오류가 표시되는 경우
zsh: no matches found: HEAD^
당신은 탈출해야 ^
git reset --soft HEAD\^
If you haven't pushed your changes yet use git reset --soft [Hash for one commit]
to rollback to a specific commit. --soft
tells git to keep the changes being rolled back (i.e., mark the files as modified). --hard
tells git to delete the changes being rolled back.
If you commit to the wrong branch
While on the wrong branch:
git log -2
gives you hashes of 2 last commits, lets say$prev
and$last
git checkout $prev
checkout correct commitgit checkout -b new-feature-branch
creates a new branch for featuregit cherry-pick $last
patches a branch with your changes
Then you can follow one the methods suggested above to remove your commit from the first branch.
Be careful with that.
But you can use the rebase command
git rebase -i HEAD~2
A vi
will open and all you have to do is delete the line with the commit. Also can read instructions that was shown in proper edition @ vi
, a couple of things can be performed on this mode
참고URL : https://stackoverflow.com/questions/2845731/how-to-uncommit-my-last-commit-in-git
'programing tip' 카테고리의 다른 글
Mac에 Java 8을 설치하는 방법 (0) | 2020.09.29 |
---|---|
표준 Python 독 스트링 형식은 무엇입니까? (0) | 2020.09.29 |
Python을 사용하여 HTTP를 통해 파일을 다운로드하려면 어떻게해야합니까? (0) | 2020.09.29 |
변수가 함수 유형인지 확인 (0) | 2020.09.29 |
Python 코드가 함수에서 더 빠르게 실행되는 이유는 무엇입니까? (0) | 2020.09.29 |