मेरे एक सहकर्मी की बस यही स्थिति थी। उनके मामले में, अलग-थलग सिर में आर-स्टूडियो काम में काम कर रहे थे - और उपकरण ने उन्हें चेतावनी दी कि वे इस और उस SHA संदर्भ के साथ शाखा बना सकते हैं ... लेकिन चूंकि एकमात्र विकल्प "बंद" था --duh !! यह एक सूचना बॉक्स था - उन्होंने बातचीत बंद कर दी और हमेशा के लिए जानकारी खो दी ...
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
फिर सामान्य मर्ज को हल करने और अंतिम कमिटमेंट ने हमें शाखा खो-खो के साथ छोड़ दिया, जो कि हमने सोचा था कि खोए हुए सिर के काम की मेजबानी करेगा। यह कहते हुए कि इस समय विकास तेजी से आगे बढ़ रहा था।