Zacząłem wprowadzać zmiany w bazie kodu, nie zdając sobie sprawy, że zajmowałem się starą gałęzią tematów. Aby je przenieść, chciałem je schować, a następnie zastosować w nowym oddziale master. Zwykłem git stash pop
przenosić zmiany w toku do tej nowej gałęzi, zapominając, że nie utworzyłem nowych zmian w master przed utworzeniem nowej gałęzi. Spowodowało to wiele konfliktów scalania i utratę czystych zapasów moich zmian (ponieważ korzystałem z popu).
Po prawidłowym odtworzeniu nowego oddziału, jak mogę odzyskać ukryte zmiany, aby je odpowiednio zastosować?
git stash drop
jako ostatni krok, aby pozbyć się niechcianej skrytki z # 2.git stash pop
: „Zastosowanie stanu może zakończyć się niepowodzeniem w przypadku konfliktów; w tym przypadku nie jest usuwane z listy ukrytych. Musisz rozwiązać konflikty ręcznie, a następnie wywołaćgit stash drop
ręcznie”. ( git-scm.com/docs/git-stash )Na szczęście
git stash pop
ma nie zmienić zapas w przypadku konfliktu!Nic więc się martwić, wystarczy wyczyścić kod i spróbować ponownie.
Powiedzmy, że twoja baza kodów była wcześniej czysta, możesz wrócić do tego stanu za pomocą:
git checkout -f
Następnie zrób rzeczy, o których zapomniałeś, np.
git merge missing-branch
Po tym po prostu strzel
git stash pop
ponownie, a otrzymasz ten sam zapas, który wcześniej był w konflikcie.Uwaga: skrytka jest bezpieczna, jednak niezatwierdzone zmiany w katalogu roboczym nie są. Mogą się zepsuć.
źródło
git stash pop
to próbą automatycznego scalenia, konfliktu i zachowałem.git stash pop
tak często, jak potrzebujesz, aż zakończy się bez konfliktu. Tak więc po konflikcie tak, katalog roboczy jest w bałaganie, jednak możesz go wyczyścić igit stash pop
ponownie zadzwonić .git checkout -f
:!Instrukcje tutaj są trochę skomplikowane, więc zamierzam zaoferować coś prostszego:
git reset HEAD --hard
Porzuć wszystkie zmiany w bieżącym oddziale...
Wykonuj prace pośredniczące, jeśli to koniecznegit stash pop
Ponownie włóż schowek ponownie w późniejszym terminie, gdy będziesz gotowyźródło
musi działać, jeśli twój poprzedni stan jest czysty.
źródło