2012-01-05 15 views
10

Niedawno próbowałem wprowadzić pewne zmiany na serwerze zdalnym.Prawdopodobnie stracił kilka zmian za pośrednictwem git

Wystąpił błąd, więc sprawdziłem, w której gałęzi byłem.

Widziałem, że byłem nieokreśloną gałęzią lokalnie, co było naprawdę dziwaczne, więc wymeldowałem się z mistrza, a potem byłem w stanie popchnąć.

Właśnie sprawdziłem scalenie i żadna z moich zmian nie była. Nie ma ich tutaj lokalnie. Ponad 10 godzin pracy i nigdzie go nie znajdę.

Zrobiłem gitk i nie widzę żadnej z moich zmian. Widzę scalanie mistrza, który wygląda tak:

Author: Sara Chipps <[email protected]> 2012-01-04 13:48:20 
Committer: Sara Chipps <[email protected]> 2012-01-04 13:48:20 
Parent: 1a294db3a244d7aeaafbc99c986af86ce7cf17da (Merge branch 'master' of https://github.com/thing/thing) 
Parent: 8ed995c7a5a370333ab27485be07f6a5f647e8d4 (added subscription button to edit profile section) 
Child: 0dbf7e53737c0e7ee7ab908812299c1d60ef0c46 (removed coffee icon on getting started) 
Branches: master, remotes/origin/master 
Follows: 
Precedes: 

    Merge branch 'master' of https://github.com/thing/thing 

nie jestem jedynym, zobowiązując się do tego projektu, nie wiem, jak mam na nieokreślony oddział lokalnie. Czy ktoś może zaproponować poprawkę? Martwisz się, że stracisz dużo pracy.

dziękuję.

+0

Możesz przybyć tylko na "nieokreśloną gałąź" (zakładam, że masz na myśli odłączoną głowę?) Poprzez własne działania. Być może próbowałeś się połączyć i nie zauważyłeś, że były konflikty. – meagar

+0

@meagar: Scalanie, konflikty lub nie, nie odłącza HEAD. Rebase jednak robi! – Cascabel

+0

@Jefromi True. Jestem przyzwyczajony do 'git pull --rebase'ing – meagar

Odpowiedz

17

Sprawdź

git reflog 

To daje historię operacji, a jeśli zmiany były sprawdzane w, będą w rewizji gdzieś w tym dzienniku.

Można również spojrzeć na wyjściu z:

git rev-list --all --header HEAD 

To pokaże sporą część co jest w repozytorium. Być może będziesz musiał pracować z -n, aby ograniczyć, a wynik jest nieco mylący. Zajrzyj na stronę man dla git-rev-list, aby uzyskać dodatkowe informacje. Pomoże ci to ustalić, gdzie jesteś.

Można również utworzyć oddział na aktualnej lokalizacji:

git branch my temporary 

Następnie użyj gitk

gitk --all 

aby zorientować się zbyt.

+0

omg, które znalazłem, dzięki bardzo. Nie mogę jeszcze zaznaczyć tej odpowiedzi jako odpowiedzi, ale zrobię to, gdy limit czasu się skończy. –

+0

Odkryłem reflog dopiero po tym, jak podobna sytuacja mnie spotkała, gdy używałam git-svn! Myślałem, że jestem skazany na zagładę, trzy dni pracy na wagę, myślę, że prawie płakałem, kiedy znalazłem rewizję! – PlexQ

+0

Tak się czułem, to było niesamowite, gdy okazało się, że wciąż tam jest. –

Powiązane problemy