제 동료가 방금 이런 상황을 겪었습니다. 그의 경우에는 분리 된 헤드 (R-Studio에서 작동)에 커밋이 있었고이 도구는이 및 해당 SHA 참조를 사용하여 분기를 만들 수 있다고 경고했지만 유일한 옵션은 "닫기"였기 때문입니다. -으! 정보 상자였습니다. 그들은 대화를 닫고 정보를 영원히 잃었습니다 ...
reflog명령 덕분에 변경 사항이 손실되지 않았 음을 알 수있었습니다. 그러나 우리의 경우 git branch예상대로 작동하지 않았거나 들어오는 git pull것이 어떻게 든 엉망으로 만들었습니다. 리플 로그에서 새로 생성 된 브랜치로의 변경 사항을 확인해야했습니다.
git cherry-pick 0b823d42..3cce27fc
우리가 원하는 모든 커밋을 브랜치에 배치했습니다. 그런 다음 develop문제없이 분기를 병합 할 수 있습니다.
이런 경우이 사람에 대한 정보, 우리가에 커밋을 식별 않았다 분리 된 머리 에 reflog은 "체크 아웃"표시 사이에 사람들을보고 (이 지점 이동을 식별) :
e09f183b HEAD@{3}: pull: Fast-forward
b5bf3e1d HEAD@{4}: checkout: moving from lost_changes to develop
b5bf3e1d HEAD@{5}: checkout: moving from 3cce27fca50177a288df0252f02edd5da5ee64fd to lost_changes
3cce27fc HEAD@{6}: commit: add statistics
417a99a4 HEAD@{7}: commit: add test
0b823d42 HEAD@{8}: commit: new utility class
d9ea8a63 HEAD@{9}: checkout: moving from develop to d9ea8a635d4c2349fcb05b3339a6d7fad5ae2a09
b5bf3e1d HEAD@{10}: pull: Fast-forward
우리가 원하는 사람들이었다 HEAD@{8}에 HEAD@{6}(모두 포함). 그래서 우리는 그것들을 다음과 같이 얻었습니다.
git cherry-pick 0b823d42..3cce27fc
그런 다음 일반적인 병합 해결 및 최종 커밋으로 인해 손실되었다고 생각하는 분리 된 헤드 작업을 호스팅하는 lost_changes 분기가 남았습니다. 이번에는 그것을 개발로 병합하는 것이 빨라졌습니다.