2010-02-01 10 views
6

Sprawdziłem stary hasz (commit) i pracowałem nad nim, sprawdzając wesoło i ignorując ostrzeżenia, że ​​nie pracuję w oddziale. Potem przeniosłem się do oddziału i zdałem sobie sprawę, że mam nie ma mowy, aby wrócić do moich osieroconych checkin (na szczęście miałem otwarte okno terminalu, więc sprawdziłem to i rozgałęziłem).Strach mojego życia Z GIT: Nie mam oddziału!

W jaki sposób mogę poprosić GIT o podanie nazw upoważnień, które NIE należą do oddziału? Lub po prostu wszystkie zatwierdzenia, jeśli nie jest to możliwe ...

+0

"sprawdzanie radości i ignorowanie ostrzeżeń". Cóż, to pokazuje: możesz ignorować ostrzeżenia, ale powinieneś wiedzieć, co robisz :-). – sleske

+0

1,5 roku później, czytając pytanie i odpowiedzi, wydaje mi się, że to nie pokazuje tego wcale, ale może odwrotnie: ostatecznie wszystko będzie jasne. –

Odpowiedz

2

Zobacz this question który ma wielką wyjaśnienie jak znaleźć stashes już spadły. Możesz zobaczyć wiszące commits itp. W ten sam sposób.

+0

Człowiek, który jest niesamowity. Nie używam jeszcze skrytki, ale ona otwiera drzwi. Dzięki John. –

+2

Och, człowieku, nigdy nie przestaniesz, gdy się go nauczysz. Przechowywanie zmian, wypróbowanie ich w różnych gałęziach, przetestowanie scaleń, przełączanie między trzema różnymi wersjami zmiany, aby pozbyć się połowy zmiany bez utraty drugiej połówki na zawsze ... –

+0

Nigdy nie widziałem twojego komentarza tutaj, ponieważ nie było @ w nim:) ... tak, tak, wciąż uczę się codziennie nowych rzeczy na GIT –

2

Możesz je wyłowić z refloga, w którym przechowywane są zatwierdzone przez ciebie zatwierdzenia.

git reflog wydrukuje najnowsze poprawki wskazane przez HEAD, która jest twoją kopią roboczą.

Można również uzyskać listę wszystkich obiektów w drzewie, które są niedostępne dla bieżących gałęzi przy użyciu git fsck.

+0

Doskonała, git fsck jest interesująca, nawet o niej nie słyszała. –

8

git reflog wyświetli dziennik odniesień utworzonych przez ostatnio wykonaną czynność. W celu późniejszego wykorzystania, git checkout zatwierdzenia umieszcza Cię na detached head. Jeśli chcesz oprzeć pracę na starym zatwierdzeniu, powinieneś zamiast tego utworzyć gałąź od tego zatwierdzenia.

git checkout -b newbranch oldsha1 

lub

git branch newbranch oldsha1 
git checkout newbranch 
+0

Dzięki! To w rzeczywistości, jak wróciłem, ale bez 'git reflog' było po prostu szczęście –

Powiązane problemy