2014-04-04 10 views
2

로컬 git 저장소가 있습니다. 일부 변경을 시도하여 분기하고 테스트했습니다. 그런 다음 테스트를 싫어서 지점을 삭제했습니다. 그렇다면 첫 커밋을 제외하고 커밋이 모두 사라진 것을 알았습니다.git 커밋이 손실되었습니다 - 내가 뭘 잘못 했습니까?

다음은 내가 사용하는 git 명령입니다.

git checkout -b testing 

일부 파일은 테스트 분기에서 여러 커밋으로 편집되었습니다.

git commit -a 

그런데 변경 사항이 마음에 들지 않아 변경 사항을 삭제하려고했습니다.

git checkout master 
git branch -d testing 

이 시점에서 테스트 분기가 완전히 병합되지 않았다는 경고가있었습니다. master가 사라에 그래서 그때 내 커밋을 모두

git branch -D testing 

했다.

무엇이 잘못되었으며 복구가 가능합니까?

+4

여기서 제시 한 설명에서 마스터에서 커밋을 수행하지 않았습니다. 정확히 무엇이 갔습니까? – kan

+3

[중복 삭제 후 지사를 복구 할 수 있습니까?] (http://stackoverflow.com/questions/3640764/can-i-recover-branch-after-the-deletion-in-git) –

+0

게시하십시오 'git reflog'의 결과를보고 현재 커밋 된 것이 무엇인지를 보여줍니다. – jthill

답변

1

그들은

당신이 그들을 다시하자 것이다, git reflog을 시도하고 커밋을 찾아 직접 그들에게 체크 아웃하려고 reflog를 통해 복구 할 수 있습니다.

예상대로입니다. 커밋 한 브랜치를 삭제했다면 왜 커밋되지 않을까요?

master에 아무 것도 보내지 않으므로, master은 변경되지 않습니다.

git의 작동 방식에 대해 혼동 스러울 수도 있으므로 http://git-scm.com/book으로 시작하는 것이 좋습니다.

다시 요약 : 아무것도 잘못되었습니다. 당신은 주인이되어서는 안됩니다. 힘내 그 다음 그들이 어디에 (서) 밀리지 않았기 때문에 그 커밋을 잃을 것이고 경고를 무시했다고 당신에게 경고했다.

+0

감사합니다. 'git reflog'를 시도하고 책을 살펴본 결과, 그것은 분리 된 머리 상태라는 것을 알게되었습니다. 나는 내가 주인이되기로 결심했다. 그러나 어떻게 든 머리는 떨어져 있었다. 그러나'git reflog'는 모든 커밋을 가지고있어서 변경 사항을 복구 할 수 있습니다. – microbe

관련 문제