2011-11-21 3 views
9

나는 Pro Git 서적에서 물건을 읽은 후에 reset으로 장난하고 있었다.힘내 : 리셋 - 지금 나는 과거에 머물렀다

나는 기본적으로 개정판 12에 reset --hard을 수행하는 것을 끝냈다.

나는 현재 또는 최신 커밋으로 돌아갈 수없는 것처럼 보입니다. 나는 reset을 사용하여 ORIG_HEAD을 사용했고 심지어 앞으로 갈 개정판의 sha1에서 먹이려고했다.

실행 중 git status 다음과 같이 표시됩니다. 분기가 12 개 커밋되어 빨리 감기가 가능합니다.

헤드를 최신 커밋으로 다시 이동하려면 어떻게해야합니까?

답변

4

재설정 한 12 개의 커밋을 이미 푸시 한 것처럼 보입니다. 그 다음, 그렇다면 REMOTE는 (일반적으로 origin)과 BRANCH_NAME 것은 현재 브랜치의 이름입니다 원격의 이름입니다

git merge --ff-only REMOTE/BRANCH_NAME 

작동합니다.

+0

네트워크 액세스 없이도 그랬습니다!차가운, 비록 그것이 원격 브랜치와 어떻게 연결될 수 없다고 생각할지라도 그것을 어떻게 병합 할 수 있는지 정말로 알고 싶다. – Gabe

+1

'merge's는 로컬 작업입니다 (네트워크 연결이 필요한'fetch '). –

11

reflog를 사용하여 가고 싶은 곳을 찾으십시오. git reflog을 사용하여 가져온 다음 적절한 커밋으로 다시 설정하면됩니다. 재설정 한 이후로 아무 것도하지 않았다면,

git reset --hard '[email protected]{1}' 

을 수행해야한다고 가정합니다.

+0

감사합니다.하지만 도움이되지 않습니다. reflog에 의해 보여지는 최신 커밋은 내가 현재 가지고있는 개정판이다. (누락 된 12 개의 것들을 보여주지는 않는다 : ( – Gabe

+0

) 이전에 보여준 것이 무엇인가? reflog는 HEAD에 대한 변경 사항을 추적한다 –

+0

나는'git reset - hard 'HEAD @ {1}''그리고 지금은'git status'에 따르면 나는 단지 11 커밋 뒤에 있습니다 : – Gabe

3

또 다른 방법은 (reflog 옆) 지사는 당신이 볼 이유입니다, 원격 지점으로의 remotes 네임 스페이스 측에 참조 될 것으로 보인다는 사실을 사용하는 것입니다 :

Your branch is behind by 12 commits and can be fast-forwarded. 

간단한

git merge origin/yourBranch 

은 로컬 브랜치의 HEAD을 원격 브랜치가 있던 곳으로 빨리 감기에 충분해야합니다.