2016-06-09 4 views
1

rebase 후 거대한 병합 충돌을 해결하고 git commit 대신에 git commit --amend을 실수로 실행했습니다.
이제 git은 이전 커밋이 모두 내 변경 사항이라고 생각합니다. git commit --amend을 실행 취소하고 병합 후 모든 변경 사항을 색인으로 가져 오는 방법이 있습니까?git commit을 수정하고 인덱스를 변경하십시오.

+0

가 왜 실행하지 않는': 설정하라는 것은 소프트은 당신이 커밋 가리와 하드 모든 변경 (당신이 해결 된 병합 충돌)을 닦아 주실 것이다 다시 설정하라는 변경되지 않은 파일을 떠날 것 git commit --amend -m "text"'다시 메시지를 수정 하시겠습니까? – harunyardimci

+1

@harunyardimci 그는 커밋의 메시지뿐만 아니라 내용도 수정했기 때문에. –

답변

1

시작을 사본을 가지고 당신이 내 지시에 아무 잘못 작성한 경우 REPO의.

원래의 수정되지 않은 커밋이 분기 지점이 없어도 트리 어딘가에 있도록 커밋을 수정했습니다.

당신은 아마 다음 중 하나를 사용하여 다시 찾을 수 있습니다

git fsck --lost-found 
git reflog 

그런 다음 다시이 커밋을 재설정 할 수 있습니다.

git reset [--hard|--soft] <your_commit_hash> 
+1

'git reflog'와'git reset --soft % mychangehash %'는 색인에 대한 나의 변경 사항을 반환했습니다. 고마워요! 당신은 저를 위해 약 4 시간을 저장했습니다! :) – Paul

+0

다행스럽게도 :) –

관련 문제