내 역사를 가정 그런 식으로 진행됩니다 - B - C -git 재설정을 사용하여 이전 changeset으로 이동 한 후 역사에서 마지막 커밋으로 돌아가는 방법은 무엇입니까?
A ~ D (마스터)
내가 git reset B
을 할 경우에, 나는 거있어 :
A - B (마스터)
문제는 이제 git log
이 (가) A에서 B까지의 기록만을 보여 주므로 더 이상 C와 D를 볼 수 없습니다.
어떻게하면 D로 돌아갈 수 있습니까?
내 역사를 가정 그런 식으로 진행됩니다 - B - C -git 재설정을 사용하여 이전 changeset으로 이동 한 후 역사에서 마지막 커밋으로 돌아가는 방법은 무엇입니까?
A ~ D (마스터)
내가 git reset B
을 할 경우에, 나는 거있어 :
A - B (마스터)
문제는 이제 git log
이 (가) A에서 B까지의 기록만을 보여 주므로 더 이상 C와 D를 볼 수 없습니다.
어떻게하면 D로 돌아갈 수 있습니까?
git reflog
으로 D를 볼 수 있어야합니다.
이 부분은 article for instance을 참조하십시오.
실제로 커밋이 삭제되는 유일한 시간은 gc --prune을 사용하는 경우입니다 (따라서주의해야합니다!). 이 라인은 나눌 수 있습니다
c5c3a82... [email protected]{0}: pull origin featureB: Merge made by recursive.
49d0608... [email protected]{1}: reset --hard HEAD^: updating HEAD
3ed01b1... [email protected]{2}: pull origin featureA: Merge made by recursive.
49d0608... [email protected]{3}: pull origin bugfixJ: Merge made by recursive.
854d44e... [email protected]{4}: commit: Add more cowbell to foo.c
6dbc22d... [email protected]{5}: pull origin bugfixI: Merge made by recursive.
9bdb763... [email protected]{6}: commit: Remove weevils
8518f9d... [email protected]{7}: checkout: moving from wickedfeature to master
: 당신이 저장소에 지금 자식 reflog를 실행하면 당신이 일한지
,이 같은 모양 많은 변화를 볼 수 있습니다 아래 4 개 부분으로 :
- 커밋 해시,
- 커밋 포인터,
- 액션,
- 및 추가 정보
우리가
[email protected]{1}
에 잃어버린 커밋을 되찾고 싶다면, 단지git reset --hard [email protected]{2}
일 수 있습니다.
재설정하기 전에 현재 분기 (및 작업 복사본)가 저장소 상태로 설정됩니다.상태가 무엇인지보고 싶다면
git checkout -b temp [email protected]{2}
(또는 git 1.5.0 이상인 경우git checkout [email protected]{2}
)을 사용할 수 있습니다.
좋아, 찾았습니다.
git reflog
을 사용할 수 있습니다.
나는 그것이 무엇을위한 것인지 몰랐다. 그러나 이제는 HEAD가 가리키고있는 모든 참조의 로그임을 알 수있다.
그 말 그대로 내 목숨을 구해 줬습니다. – Nitroware