나는 5 개의 커밋을했고, 나는 그들을 밀어 내기 전에 모든 커밋을 하나 만들고 싶었다. 어떤 이유로 나는 이것을 평소 사용하는 것과 다른 방법으로 시도하기로 결정했습니다.git rebase가 내 커밋을 먹었습니다! 나에게 'git reflog'결과를 번역 하시겠습니까?
FWIW : 여기서 지침을 따르려고했습니다. http://gitready.com/advanced/2009/02/10/squashing-commits-with-rebase.html.
아래에서 자세한 내용을 설명 하겠지만 질문의 맨 아래로 건너 뛰고 여기 git reflog
의 출력을 넣으십시오. 그 이유는 여기에 중요한 부분이 있기 때문입니다.
git rebase -i HEAD~5
내가 잘못 내가 지금 실현, 커밋 및 I을 보였다 텍스트 편집기되게되었다, 모든 첫 번째 열을 변경 : 내 모든 변화 노력으로 내가 한 -
그래서 여기에 내가 무슨 짓을했는지 'pick'에서 'squash'값.
그런 다음 오류 메시지가 표시됩니다. 내 수치심에 나는 오류 메시지가 말한 것을 기억할 수는 없지만 "당신은 사용하지 않겠다"같은 말을했다고 생각합니다. 그 시점에서
나는 다시 프롬프트이고 나는 반복하려고 할 때 :It seems that there is already a rebase-merge directory, and
I wonder if you are in the middle of another rebase. If that is the
case, please try
git rebase (--continue | --abort | --skip)
If that is not the case, please
rm -fr /home/foo/dev/bar/.git/rebase-merge
and run me again. I am stopping in case you still have something
valuable there.
그럼 내가 뭘 제안이 답변 https://stackoverflow.com/a/12163247/364088을 읽어
git rebase -i HEAD~5
내가 메시지를 얻을 :
git reset --soft HEAD^
나는 그것을했다. 내가 해낸 후에.
git diff
더 변화를 보이지 않았다 있지만
git status
는 않은 변경이있는 파일의 수를 보여 주었다. 어쨌든 나는 그 때했다
git commit
그리고 지금 나는 지난 다섯 커밋에서 모든 chnages를 잃어 버렸다!
git reflog
쇼 (이 그것의 바로 위에있다) :
이3f80e4b [email protected]{0}: commit: Decorator demo added
1888dd9 [email protected]{1}: reset: moving to HEAD^
7d6228e [email protected]{2}: checkout: moving from master to 7d6228eb9b03d0c45acf7c66e662220213cf4fb9
705736f [email protected]{3}: commit: Snapshot commit - squash later
75db0c3 [email protected]{4}: commit: Snapshot commit - squash later
b70b50f [email protected]{5}: commit: Snapshot commit - squash later
d970a62 [email protected]{6}: commit: Snapshot commit - squash later
0f24e88 [email protected]{7}: commit: Snapshot commit - squash later
7d6228e [email protected]{8}: commit: Move some standard code into its own module and tidy up .
1888dd9 [email protected]{9}: commit: Early version of the decorators demo
그래서 것은 "스냅 샷 커밋 - 스쿼시 나중에"라는 레이블이 붙은 커밋 단일로 I 병합 원하는 사람은 커밋 .
HEAD @ {2} 및 HEAD @ {1}은 "스냅 샷 커밋 - 스쿼시"를 병합하는 과정에서 수행 한 작업입니다. 커밋 HEAD @ {0}은 리베이스 및 리셋 후에 수행 한 커밋입니다.
마지막 커밋이 가장 중요한 경우는 HEAD @ {8}입니다.
그래서 '705736f '로 돌아가서 이상적으로는 이번에 만 커밋을 병합하면됩니다.
"스냅 샷 커밋 - 스쿼시 나중에"변경 사항을 복구 할 수 있다면 매우 행복 할 것입니다.
조언에 감사드립니다. 당신이 그것을 체크 아웃 (가 새 로컬 지점이다) 및 확인 할 수
git branch recover 705736f
이 시점에서 :
감사합니다. 매우 감사드립니다. – glaucon