Jak odrzucić wszystkie zmiany wprowadzone w gałęzi?
Pracuję w gałęzi (tj. design
) i wprowadziłem kilka zmian, ale muszę je wszystkie wyrzucić i zresetować, aby pasowały do wersji repozytorium. Myślałem, że git checkout design
to zrobi, ale to mi mówi, że jestem już w branchu design
i że mam 3 zmodyfikowane pliki.
Jak odrzucić te zmiany i uzyskać gałąź w obecnej formie na zdalnym serwerze?
9 answers
Uwaga: Ty nie możesz cofnąć tego.
Try git checkout -f
spowoduje to odrzucenie wszelkich lokalnych zmian, które są nie popełnione w wszystkich gałęziach i master.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-09-23 18:03:42
Git reset --hard może Ci pomóc, jeśli chcesz wyrzucić wszystko od ostatniego commita
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-15 00:33:54
git diff master > branch.diff
git apply --reverse branch.diff
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-08-28 14:04:37
Jeśli nie chcesz żadnych zmian w design
i zdecydowanie chcesz, aby po prostu pasowała do gałęzi zdalnego sterowania, możesz również usunąć tę gałąź i odtworzyć ją:
# Switch to some branch other than design
$ git br -D design
$ git co -b design origin/design # Will set up design to track origin's design branch
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-07-28 20:51:11
@Will, Git immersion to naprawdę fajny i prosty tutorial Gita. pokaże Ci, jak cofnąć zmiany w następujących przypadkach: unstaged, stsinged i committed. labs 14-18
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-01-28 16:01:59
Jeśli chcesz odrzucić zmiany w lokalnej gałęzi, możesz je ukryć za pomocą polecenia git stash.
Git stash save "some_name"
Twoje zmiany zostaną zapisane i możesz je odzyskać później, jeśli chcesz lub możesz je usunąć. Po wykonaniu tej czynności, twoja gałąź nie będzie miała żadnego niezatwierdzonego kodu i możesz pobrać najnowszy kod z głównej gałęzi za pomocą git pull.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-08-16 14:27:41
W źródłowym korzeniu:
git reset ./ HEAD <--un-stage any staged changes
git checkout ./ <--discard any unstaged changes
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-02-06 15:13:00
git checkout -f
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-07-18 12:45:04
Odwracalna metoda usuwania wszystkich zmian:
Znalazłem to pytanie po wykonaniu połączenia i zapomnieniu o kasie rozwiń zaraz po tym. Zgadliście: zacząłem modyfikować kilka plików bezpośrednio na mistrz. D ' Oh! Ponieważ moja sytuacja nie jest wyjątkowa (wszyscy to zrobiliśmy, prawda; ->), zaproponuję odwracalny sposób, w jaki odrzuciłem wszystkie zmiany, aby uzyskać mistrz wygląda jak rozwiń jeszcze raz.
Po wykonaniu git diff
aby zobaczyć, jakie pliki zostały zmodyfikowane i ocenić zakres mojego błędu, wykonałem:
git stash
git stash clear
Po pierwszym przechowywaniu wszystkich zmian, zostały one następnie wyczyszczone. Wszystkie zmiany wprowadzone w plikach w wyniku błędu do mistrz zniknęły, a parytet został przywrócony.
Powiedzmy, że teraz chciałem przywrócić te zmiany. Dam radę. Pierwszy krok to znalezienie hasha skrytki, którą właśnie wyczyściłem / upuściłem: {]}git fsck --no-reflog | awk '/dangling commit/ {print $3}'
Po zapoznaniu się z hash, I udało się przywrócić niezatwierdzone zmiany za pomocą:
git stash apply hash-of-cleared-stash
Tak naprawdę nie chciałem przywracać tych zmian, chciałem tylko potwierdzić, że mogę je odzyskać, więc wyczyściłem je ponownie.
Inną opcją jest zastosowanie skrytki do innej gałęzi , zamiast wymazywania zmian. Więc jeśli chodzi o usuwanie zmian wprowadzonych podczas pracy na niewłaściwej gałęzi, stash
daje Ci dużą elastyczność, aby odzyskać swoje boo-boo.
Anyhoo, if you want a reversible means of czyszczenie zmian w gałęzi, powyższy sposób jest mniej niebezpieczny w tym przypadku użycia.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2020-07-07 11:21:32