'git reset'을 취소하려면 어떻게 해야 합니까?
이 명령어를 취소하려면 어떻게 해야 합니까?
git reset HEAD~
간단한 답변:
git reset 'HEAD@{1}'
장황한 답변:
Git은 모든 참조 업데이트(예: 체크아웃, 재설정, 커밋, 병합)를 기록합니다.다음을 입력하여 볼 수 있습니다.
git reflog
이 목록 어딘가에 당신이 잃어버린 약속이 있습니다.예를 들어, 방금 입력했다고 칩시다.git reset HEAD~
원상태로 되돌리고 싶다.재로그는 다음과 같습니다.
$ git reflog
3f6db14 HEAD@{0}: HEAD~: updating HEAD
d27924e HEAD@{1}: checkout: moving from d27924e0fe16776f0d0f1ee2933a0334a4787b4c
[...]
첫 줄에 라고 써 있다HEAD
0개 전 위치(즉, 현재 위치)는 3f6db14로 리셋하여 얻습니다.HEAD~
두 번째 줄에는 이렇게 적혀 있어요.HEAD
1 위치 전(즉, 리셋 전 상태)은 d27924e입니다.이것은 특정 커밋을 체크함으로써 얻을 수 있습니다(그러나 지금은 중요하지 않습니다).리셋을 취소하려면git reset HEAD@{1}
(또는git reset d27924e
).
한편, 그 이후 HEAD를 업데이트한 다른 명령어를 실행한 경우 원하는 커밋은 목록의 맨 위에 있지 않으므로reflog
.
마지막으로 한 가지 주의사항더 보기 쉬울 수 있습니다.reflog
예를 들어 마스터를 해제하고 싶은 특정 브랜치에 대해HEAD
:
$ git reflog show master
c24138b master@{0}: merge origin/master: Fast-forward
90a2bf9 master@{1}: merge origin/master: Fast-forward
[...]
이것은 일반보다 노이즈가 적을 것입니다.HEAD reflog
.
오래된 질문이고, 게시된 답변은 잘 작동합니다.다른 선택지를 제시하겠습니다.
git reset ORIG_HEAD
ORIG_HEAD
라고 하는 커밋을 참조합니다.HEAD
를 참조했습니다.
제 상황은 조금 달랐어요, 그랬죠.git reset HEAD~
세 번.
원래대로 되돌리려면
git reset HEAD@{3}
할 수 있을 거예요.
git reset HEAD@{N}
하지만 만약 당신이 git reset을 했다면
git reset HEAD~3
할 필요가 있다
git reset HEAD@{1}
{N}은(는) 마크가 코멘트에서 지적한 대로 재로그에 있는 작업 수를 나타냅니다.
사용하다
git reflog
모든 참조 업데이트를 가져옵니다.git reset <id_of_commit_to_which_you_want_restore>
대부분의 시간 동안 응답 가능
git reset 'HEAD@{1}'
답변은 매번 기능합니다.
git reset --hard 'HEAD@{1}'
어디에--hard
모든 것을 예전과 동일하게 유지합니다.
언급URL : https://stackoverflow.com/questions/2510276/how-do-i-undo-git-reset
'sourcetip' 카테고리의 다른 글
비활성 상태일 때 DataGrid가 선택한 행 색상 (0) | 2023.04.23 |
---|---|
Git 저장소를 특정 폴더로 복제하려면 어떻게 해야 합니까? (0) | 2023.04.23 |
실행 중인 Azure 웹 작업을 중지/취소하는 방법 (0) | 2023.04.23 |
iOS에서 최상위 보기 컨트롤러를 찾는 방법 (0) | 2023.04.23 |
Git에서 브랜치를 삭제한 후 복구할 수 있습니까? (0) | 2023.04.23 |