git에서 체크 아웃을 취소하려면 어떻게합니까?


134

방금 로컬 git repo에서 이전 커밋을 확인했습니다. 나는 그것을 변경하지 않았으며, 나는 단지 그것을보고있었습니다. 이제 최신 커밋으로 돌아가고 싶습니다. 어떻게해야합니까?

내가 그것을 확인하는 데 사용한 정확한 명령 :

git checkout e5dff6b3c5d704f9b598de46551355d18235ac08

이제 git log를 입력하면 상단에 체크 아웃 된 커밋이 있지만 나중에 커밋하는 것은 없습니다. 실수로 삭제 했습니까?


나는 당신이 그것을 잘못된 길로보고 있다고 생각합니다 : 우리는 개별적으로 커밋하지 않고 가지 (머리)를 체크 아웃합니다
Z. Khullah

답변:


183

이것을 먼저 시도하십시오 :

git checkout master

(와 다른 지점에있는 master경우 대신 지점 이름을 사용하십시오.)

그래도 문제가 해결되지 않으면 ...

단일 파일의 경우 :

git checkout HEAD /path/to/file

전체 저장소 작업 사본의 경우 :

git reset --hard HEAD

그래도 작동하지 않으면 reflog에서 이전 헤드 SHA를 찾아 다시 설정하십시오.

git reflog
git reset --hard <sha from reflog>

HEAD 는 항상 현재 브랜치의 최신 커밋을 가리키는 이름입니다.


그러나 어떤 SHA1 해시를 제공할지 결정하기 위해 커밋을 어떻게 볼 수 있습니까?
유발 카르미

1
입력하지 않고 HEAD그대로 입력 합니다. 힘내는 이미 무슨 HEAD뜻 인지 알고 있습니다. 그러나 실제로 SHA1을 제공하려는 git log경우 커밋 로그를 보는 데 사용할 수 있습니다 .
Amber

실행 git reset --hard HEAD하면 체크 아웃 된 커밋으로 돌아갑니다 ... 체크 아웃하는 데 사용한 정확한 명령을 게시합니다.
유발 카르미

(호기심이 많으면 입력 git rev-parse HEAD하고 최신 커밋에 해당하는 SHA1을 제공함을 알 수 있습니다.)
Amber

위의 두 가지 새로운 옵션을 추가하고 시도하십시오 (순서-체크 아웃 버전을 먼저 시도하십시오).
Amber


16

git checkout master또는을 원할 것입니다 git checkout [branchname].

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.