2013-07-09 5 views
2

이상하게 들릴지 모르지만, 방금 내 EDITOR 환경 변수를 테스트하기 위해 커밋을 수정했습니다. 커밋 메시지 나 파일을 편집하지 않았더라도 커밋이 수정된다는 사실을 알지 못했습니다. 문제의 커밋은 개발 브랜치에서 마스터 브랜치로 병합되어 태그되었습니다. (가) 그러나 수정 후, 분기 구조는 모든 남았습니다 갔다 :이은 미래에 발생할 얼마나 많은 문제 또는 얼마나 나쁜 모르는나쁜 커밋을 취소하려면 어떻게해야합니까?

Screen shot

,하지만 난 저장소 터치 감히하지 않습니다 내가 더 많이 알 때까지. "추가 된 문서"를 수정하기 전에 리포지토리를 되감 으려고합니다. 범하다. 개발 지점은 "추가 된 문서"를 가리켜 야합니다. 커밋은 마스터 브랜치와 현재의 "추가 된 문서"에 병합됩니다. 커밋이 없어야합니다.

그럴 수 있습니까?


관련 :

답변

15

당신은이

git reflog 

그런 다음 당신의 "커밋하기 전에 당신이했다 커밋을 발견 할 수 있어야합니다 - 고치다". 대개 HEAD @ {1}이됩니다. 지금 해보세요

git reset --soft [email protected]{1} 
+0

완벽한 !! 제 경우에는'HEAD @ {6}'이었습니다. – Hubro

+1

gitk를 사용한다면이 방법이 더 쉽다는 것을주의하십시오. 당신은 이미 당신이 당신의 머리를 옮길 커밋을 알고 있습니다. git에서 sha를 복사하고'git reset --soft ** SHA **'를 실행하십시오. – Chronial

관련 문제