git: przełącza gałąź i ignoruje wszelkie zmiany bez zatwierdzania
Pracowałem nad gałąź git i byłem gotowy do zatwierdzenia zmian, więc zrobiłem commit z użytecznym Komunikatem commit. Następnie z nieobecnością wprowadziłem drobne zmiany w kodzie, które nie są warte zachowania. Teraz chcę zmienić gałęzie, ale git daje mi,
Błąd: masz lokalne zmiany na "X"; nie można przełączać gałęzi.
Myślałem, że mogę zmieniać gałęzie bez angażowania się. Jeśli tak, to jak Mogę to skonfigurować? Jeśli nie, jak mam wyjść z tego problemu? Chcę zignoruj drobne zmiany bez zatwierdzania i po prostu zmień gałęzie.
9 answers
Do zmiany gałęzi potrzebny jest czysty stan. Kasowanie gałęzi będzie dozwolone tylko wtedy, gdy nie wpłynie to na " brudne pliki "(jako Charles Bailey uwagi w komentarzach).
W przeciwnym razie powinieneś:
- Schowaj Twoją aktualną zmianę lub
-
reset --hard HEAD
(Jeśli nie masz nic przeciwko utracie tych drobnych zmian) lub -
checkout -f
(podczas przełączania gałęzi postępuj, nawet jeśli indeks lub drzewo robocze różni się od głowy. To jest używane odrzucenie lokalnych zmian. )
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-05-23 12:10:11
Jeśli chcesz odrzucić zmiany,
git checkout -- <file>
git checkout branch
Jeśli chcesz zachować zmiany,
git stash save
git checkout branch
git stash pop
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
2009-08-20 19:29:18
Cóż, powinno być
git stash save
git checkout branch
// do something
git checkout oldbranch
git stash pop
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
2009-10-11 08:48:17
Follow,
$: git checkout -f
$: git checkout next_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
2009-08-20 08:02:25
Zauważ, że jeśli połączyłeś zdalne gałęzie lub masz lokalne commity i chcesz wrócić do zdalnej głowicy, musisz to zrobić:
git reset --hard origin/HEAD
HEAD
samo odnosi się tylko do lokalnego commit / merge -- kilka razy zapomniałem, że podczas resetowania i kończy się na "twoje repozytorium jest X commit przed.."kiedy w pełni zamierzałem zniszczyć wszystkie zmiany/commity i wrócić do zdalnej gałęzi.
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-11-15 12:44:54
Jeśli wprowadziłeś zmiany w plikach, które Git również musi zmienić podczas przełączania gałęzi, nie pozwoli Ci to. Aby usunąć zmiany robocze, należy użyć:
git reset --hard HEAD
Wtedy będziesz mógł zmienić gałęzie.
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
2009-08-20 08:01:15
Żadna z tych odpowiedzi mi nie pomogła, ponieważ nadal miałem niezabezpieczone pliki nawet po resecie i schowku. Musiałem zrobić:
git reset --hard HEAD
git clean -d -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-04-24 16:05:04
Przejście na nową gałąź tracącą zmiany:
git checkout -b YOUR_NEW_BRANCH_NAME --force
Przejście na istniejącą gałąź tracącą zmiany:
git checkout YOUR_BRANCH --force
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-03-01 22:41:37
Zamknij terminal, usuń folder, w którym znajduje się twój projekt, następnie ponownie Klonuj swój projekt i voilá.
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-03-12 19:24:01