Właśnie usunąłem niewłaściwą gałąź z kilkoma eksperymentalnymi zmianami, których potrzebuję git branch -D branchName
.
Jak mogę odzyskać oddział?
Właśnie usunąłem niewłaściwą gałąź z kilkoma eksperymentalnymi zmianami, których potrzebuję git branch -D branchName
.
Jak mogę odzyskać oddział?
Odpowiedzi:
Możesz użyć git reflog, aby znaleźć SHA1 ostatniego zatwierdzenia oddziału. Od tego momentu możesz odtworzyć gałąź za pomocą
git branch branchName <sha1>
Edycja: Jak mówi @seagullJS, branch -D
polecenie powie ci sha1, więc jeśli nie zamknąłeś jeszcze terminala, stanie się to naprawdę łatwe. Na przykład to usuwa, a następnie natychmiast przywraca gałąź o nazwie master2
:
user@MY-PC /C/MyRepo (master)
$ git branch -D master2
Deleted branch master2 (was 130d7ba). <-- This is the SHA1 we need to restore it!
user@MY-PC /C/MyRepo (master)
$ git branch master2 130d7ba
git branch branchName origin/branchName
Jeśli właśnie usunąłeś gałąź, zobaczysz coś takiego w swoim terminalu:
Deleted branch branch_name(was e562d13)
- gdzie e562d13 jest unikalnym identyfikatorem (inaczej „SHA” lub „hash”), dzięki czemu możesz przywrócić usuniętą gałąź.
Aby przywrócić gałąź, użyj:
git checkout -b <branch_name> <sha>
na przykład :
git checkout -b branch_name e562d13
Po pierwsze: wykonaj kopię zapasową całego katalogu, w tym katalogu .git.
Po drugie: możesz użyć git fsck --lost-found
aby uzyskać identyfikator utraconych zatwierdzeń.
Po trzecie: bazuj lub łącz zgubione zatwierdzenie.
Po czwarte: Zawsze myśl dwa razy przed użyciem -D lub --force z git :)
Możesz także przeczytać tę dobrą dyskusję o tym, jak wyjść z tego rodzaju błędu.
EDYCJA: Nawiasem mówiąc, nie uruchamiaj git gc
(lub nie pozwól, aby uruchomił się sam - tj. Nie uruchamiaj git fetch
ani nic podobnego), bo możesz stracić swoje zobowiązania na zawsze.
Dzięki, działało.
gałąź git nowa_nazwa_gałęzi
sha1
git kasa nowa_nazwa_gałęzi
// widzę moje stare zarejestrowane pliki w mojej starej gałęzi
Wykonaj następujące kroki:
1: Wprowadź:
git reflog show
Spowoduje to wyświetlenie całej historii zatwierdzeń, musisz wybrać sha-1, który ma ostatnie zatwierdzenie, które chcesz odzyskać
2: utwórz nazwę oddziału z wybranym identyfikatorem Sha-1 , np .: 8c87714
git branch your-branch-name 8c87714