2011-08-31 4 views
2

내 이미힘내 되돌리기는 다음 이전에 복귀 저지하지만, 개정을 유지하려면

A> B> C> D가> E 가정 해 봅시다, Github에서에 밀어 커밋 - HEAD

내가 다시 되돌리려 HEAD

- B에, 그래서 나는

A> B 모양을 지금

git reset --hard <B:Hash>

를 사용 내가 git push --force와 서버에 밀어 경우3210

그래서, 나는> D 파일을 되돌리고 A> B> C와 같은 최종 개정 할 것을 약속 할 수 있습니까 저장소

에서 C, D, E를 잃었다 > E>

F = 되돌림 F

: B

는 커밋 할 파일이 없습니다 말했기 때문에 나는 git commit을 사용할 수 없습니다.

답변

4

이 시도 :

git checkout B 
git reset --soft E 
git commit -m 'Reverted to B' 

체크 아웃 명령은 작업 트리 또는 인덱스에 영향을주지 않고, B.가 커밋 현재의 분기점이 변경됩니다 --soft로 다시 커밋에 맞게 작업 트리와 인덱스를 변경합니다. 즉, 재설정 명령 다음에 인덱스는 B 커미트와 완전히 동일한 상태가됩니다.


는 각각 복귀 커밋에 대한 새 커밋이 만들어집니다 제외 또한, 같은 일을 할 것입니다 git revert B..E을 사용할 수 있습니다. 한 번의 커밋에서 되돌리기를 원하면 -n 옵션 (git revert -n B..E)을 추가하면 Git이 작업 디렉토리와 색인에 복귀를 적용합니다. 되돌리기를 끝내기 위해 결과를 커밋하십시오.