2011-02-07 16 views
7

zrobiłem kasy plik z moich najnowszych zmian w łeb przez pomyłkę ..Cofnij „git checkout HEAD foo.c” w git SCM

git checkout HEAD foo.c 

oznacza, że ​​straciłem wszystkie moje zmiany, które chciałem popełnić. ..

jest sposób na znalezienie tych zmian w pamięci podręcznej git lub w lokalnej historii?

Odpowiedz

3

Jeśli go nie zatwierdziłeś, (lub ukryłeś lub nie dodał do indeksu) git nie wiedziałby o twoich lokalnych zmianach. Więc nie.

7

Jeśli nie ukryłeś zmian w pliku podczas pracy (a następnie przywracasz je), niewiele możesz z tym zrobić.

jeśli dodałeś zmiany pliku używając git add (prawdopodobnie masz, ponieważ miałeś zamiar zatwierdzić), to obiekt blob powinien już być w db git. możesz użyć git fsck, aby znaleźć zwisające obiekty. poszukaj plam i sprawdź wszystkie - albo używając git show lub git cat-file - (to wymaga czasu, wiem ...), ale jeśli masz szczęście, znajdziesz zawartość twojego pliku. użyj git cat-file blob $hash_of_object > foo.c do odzyskania zawartości pliku

+0

bez powodzenia, ale tak, dziękuję! – Mesut

+0

Mesut, czy w ogóle dodajesz go do git, spodziewasz się jakiejkolwiek formy przywracania? –

+0

Tak, to było już w repozytorium, ale straciłem ostatnie zmiany, które zrobiłem dzisiaj ... – Mesut