У мого колеги якраз була така ситуація. У його випадку були коміти в окремій голові - вони працюють у R-Studio - і інструмент попередив їх про те, що вони можуть створити гілку за допомогою цього та цього посилання на SHA ... але оскільки єдиним варіантом було "Закрити" --дух !! це було інформаційне вікно - вони закрили діалог і втратили інформацію назавжди ...
Завдяки reflogкоманді ми могли побачити, що зміни не були втрачені. Але в нашому випадку git branchце не спрацювало, як очікувалося ..., або вхідний git pullце якось зіпсувало. Нам довелося переглядати зміни від рефлог до новоствореної гілки:
git cherry-pick 0b823d42..3cce27fc
який розміщував усі необхідні комітети у відділенні. Тоді ми могли б об'єднати гілку developбез проблем.
На всякий випадок, якщо це комусь інформативно, ми ідентифікували коміти на відірваній голові в reflog, переглядаючи тих, хто знаходиться між позначеним "checkout" (що визначає зміщення філії):
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, що розміщує роботу з відокремленою головою, яку ми вважали втраченою. Цього разу об’єднання цього в розробку було швидким.