sourcetip

'git reset'을 취소하려면 어떻게 해야 합니까?

fileupload 2023. 4. 23. 11:04
반응형

'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
[...]

첫 줄에 라고 써 있다HEAD0개 전 위치(즉, 현재 위치)는 3f6db14로 리셋하여 얻습니다.HEAD~두 번째 줄에는 이렇게 적혀 있어요.HEAD1 위치 전(즉, 리셋 전 상태)은 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}은(는) 마크가 코멘트에서 지적한 대로 재로그에 있는 작업 수를 나타냅니다.

  1. 사용하다git reflog모든 참조 업데이트를 가져옵니다.

  2. 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

반응형