Jak rozwiązać git mówiąc "zatwierdź zmiany lub ukryj je przed połączeniem"?
Zrobiłem kilka aktualizacji na moim lokalnym komputerze, popchnąłem je do zdalnego repozytorium, a teraz próbuję wyciągnąć zmiany na serwer i dostaję wiadomość;
Błąd: Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalenie:
Wp-content/W3tc-config/master.php
Proszę zatwierdź zmiany lub ukryj je przed połączeniem.
Więc uciekłem,
git checkout -- wp-content/w3tc-config/master.php
I spróbowałem jeszcze raz i dostałem tę samą wiadomość. I ' m zakładając, że w3tc
zmienił coś w pliku konfiguracyjnym na serwerze. Nie obchodzi mnie, czy lokalna lub zdalna Kopia idzie na serwer(przypuszczam, że zdalna jest najlepsza), po prostu chcę być w stanie scalić resztę moich zmian (aktualizacje wtyczki).
18 answers
Nie można łączyć z lokalnymi modyfikacjami. Git chroni Cię przed utratą potencjalnie ważnych zmian.
Masz trzy opcje:
-
Zatwierdź zmianę używając
git commit -m "My message"
-
Schowaj.
Ukrywanie działa jak stos, w którym możesz wypchnąć zmiany i popchnąć je w odwrotnej kolejności.
Do schowka, wpisz
git stash
Zrób połączenie, a następnie wyciągnij skrytkę:
git stash pop
-
Odrzuć lokalne zmiany
Za pomocą
git reset --hard
lubgit checkout -t -f remote/branch
Lub: Odrzuć lokalne zmiany dla określonego pliku
Using
git checkout filename
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-06-26 10:33:28
git stash
git pull <remote name> <remote branch name> (or) switch branch
git stash apply --index
Pierwsze polecenie przechowuje Twoje zmiany tymczasowo w skrytce i usuwa je z katalogu roboczego.
Drugie polecenie przełącza gałęzie.
Trzecie polecenie przywraca zmiany, które zostały zapisane w skrytce (opcja --index
jest przydatna, aby upewnić się, że pliki z wystawieniem są nadal wystawione).
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-05-07 14:46:50
Możesz wypróbować jedną z następujących metod:
Rebase
W przypadku prostych zmian, spróbuj zmienić jego położenie podczas wyciągania zmian, np.
git pull origin master -r
Więc zastosuje bieżącą gałąź na górze gałęzi upstream Po pobraniu.
Jest to równoważne: checkout master
, fetch
oraz rebase origin/master
komendy git.
To potencjalnie niebezpieczny sposób działania. Przepisuje historię, co nie wróży dobrze, gdy już opublikowałeś tę historię. Nie użyj tej opcji, chyba że przeczytałeś git-rebase(1)
ostrożnie.
Checkout
Jeśli nie dbasz o swoje lokalne zmiany, możesz przełączyć się na inną gałąź tymczasową (z siłą) i przełączyć ją z powrotem, np.]}
git checkout origin/master -f
git checkout master -f
Reset
Jeśli nie dbasz o lokalne zmiany, spróbuj zresetować go do HEAD (stan pierwotny), np.
git reset HEAD --hard
Jeśli powyższe nie pomoże, mogą to być reguły w pliku normalizacji git (.gitattributes
) więc lepiej zatwierdzić co jest napisane. Albo Twój system plików nie obsługuje uprawnień, więc musisz wyłączyć filemode
w konfiguracji git.
Related: jak wymusić" git pull", aby nadpisać lokalne pliki?
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 10:31:37
Spróbuj tego
git stash save ""
I spróbuj pociągnąć ponownie
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-01-25 08:20:02
Więc sytuacja, na którą wpadłem była następująca:
Błąd: Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalanie: wp-content/w3tc-config/master.php Proszę zatwierdź zmiany lub ukryj je przed połączeniem.
Tylko, że tuż przed tym, był odległy: tak właściwie to:
Remote: błąd: Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez merge: some / file.ext Proszę, zatwierdź swoje zmiany lub schowaj zanim się połączysz.
To, co się działo, było (myślę, że nie w 100% pozytywne) Git post receive hook zaczął się uruchamiać i spieprzyć z powodu zmian ruchu w zdalnym repozytorium serwera, które teoretycznie nie powinno być dotykane.
Więc to, co zrobiłem, śledząc hook po odbiorze i znajdując to, musiałem przejść do zdalnego repozytorium na serwerze i nastąpiła zmiana (której nie było w moim lokalnym repozytorium, co w rzeczywistości mówiło: że pasuje, żadnych zmian, nic do zatwierdzenia, na bieżąco, itp.) Więc podczas gdy na lokalnym, nie było żadnych zmian, na serwerze, zrobiłem git checkout -- some/file.ext
i wtedy lokalne i zdalne repozytoria rzeczywiście dopasowane I mogłem kontynuować pracę, i wdrożyć. Nie do końca jestem pewien, jak do tej sytuacji doszło, choć kilku tuzinów deweloperów plus zmiany mogą mieć z tym coś wspólnego.
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
2013-11-17 22:02:24
Ostrzeżenie: spowoduje to usunięcie nie śledzonych plików, więc nie jest to świetna odpowiedź na to pytanie.
W moim przypadku, nie chciałem zachować plików, więc to działało na mnie:
Git 2.11 i nowsze:
git clean -d -fx .
Starszy Git:
git clean -d -fx ""
Bibliografia: http://www.kernel.org/pub/software/scm/git/docs/git-clean.html
-x oznacza, że ignorowane pliki są również usuwane, a także pliki nieznane git.
-d oznacza usuwanie nie śledzonych katalogów oprócz Nie śledzonych plików.
-f jest wymagane, aby zmusić go do uruchomienia.
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-09-24 05:54:44
Aby zachować zapis nowo utworzonych plików podczas rozwiązywania tego problemu:
Jeśli masz nowo utworzone pliki , możesz utworzyć łatę zmian lokalnych, pobrać zdalne scalanie i zastosować łatę lokalną po zakończeniu zdalnego scalania, jak zdefiniowano krok po kroku poniżej:
- Zaplanuj swoje lokalne zmiany. (do not commit). Staging jest wymagany do utworzenia poprawki nowych utworzonych plików (ponieważ nadal nie są śledzone)
git add .
- Utwórz łatkę do keep record
git diff --cached > mypatch.patch
- Odrzuć lokalne zmiany i usuń nowe lokalne pliki
git reset --hard
- ciągnij zmiany
git pull
- nanieść plaster
git apply mypatch.patch
Git połączy zmiany i utworzy .pliki rej dla zmian, które nie są scalane.
Zgodnie z sugestią Anu, jeśli masz problemy z nałożeniem patcha, spróbuj:
git apply --reject --whitespace=fix mypatch.patch
Ta odpowiedź git: patch nie stosuje mówi szczegółowo o ten numer
Ciesz się ciągłą pracą nad swoją funkcją i zatwierdzaj lokalne zmiany po zakończeniu.
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-06-20 09:12:55
Dla mnie to zadziałało:
git reset --hard
A następnie
git pull origin <*current branch>
Potem
git checkout <*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
2020-01-21 08:14:34
To rozwiązało mój błąd:
Jestem na gałęzi : "A"
git stash
Przenieś do gałęzi master:
git checkout master <br>
git pull*
Wróć do mojej gałęzi: "A"
git checkout A <br>
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
2021-01-05 17:26:06
Prośba o commit przed pull
- git stash
- git pull origin >
W razie potrzeby:
- git stash apply
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-08-01 04:26:01
Dla mnie tylko git reset --hard
zadziałało.
Commiting nie wchodziło w grę, ponieważ nie było co się angażować.
Schowanie nie wchodziło w grę, ponieważ nie było nic do ukrycia.Wygląda na to, że mógł pochodzić z wykluczonych plików w .git/info/exclude
i mieć git update-index --assume-unchanged <file>
' ed niektórych plików.
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
2019-04-04 14:59:31
W moim przypadku zrobiłem kopię zapasową, a następnie usunąłem plik, na który Git narzekał, potem udało mi się w końcu sprawdzić inną gałąź.
Następnie podmieniłem plik, skopiowałem z powrotem zawartość i kontynuowałem tak, jakby nic się nie stało.
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-26 06:29:15
Jest to prawdopodobnie spowodowane problemami CRLF.
Zobacz: dlaczego powinienem używać core.autocrlf = true w Git?
Użyj tego, aby wyciągnąć i wymusić aktualizację:
git pull origin master
git checkout origin/master -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-12-10 03:45:31
Próbowałem pierwszej odpowiedzi: git stash
z najwyższym wynikiem, ale Komunikat o błędzie wciąż się pojawiał, a następnie znalazłem ten artykuł, aby zatwierdzić zmiany zamiast stash 'niechętny Commit'
I Komunikat o błędzie zniknął w końcu:
1: git add .
2: git commit -m "this is an additional commit"
3: git checkout the-other-file-name
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-12-14 02:01:03
Jeśli używasz rozszerzenia Git powinieneś być w stanie znaleźć swoje lokalne zmiany w Working directory
, Jak pokazano poniżej:
Jeśli nie widzisz żadnych zmian, prawdopodobnie dlatego, że jesteś na złym podmodule. Sprawdź więc wszystkie przedmioty za pomocą ikony łodzi podwodnej, jak pokazano poniżej:
Kiedy znalazłeś jakąś niezastąpioną zmianę:
Wybierz linię z Working directory
, przejdź do Diff zakładka, kliknij prawym przyciskiem myszy na wiersze z ikoną ołówka (lub +
lub -
), Wybierz Zresetuj do pierwszego zatwierdzenia / align = "left" /
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
2019-08-26 10:36:11
Prawdopodobnie
git --rebase --autostash
Pomogłoby
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-02-11 15:55:11
Odrzuć lokalne zmiany
using git reset --hard
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-08-06 10:42:02
Przed użyciem reset pomyśl o użyciu revert, aby zawsze można było wrócić.
Https://www.pixelstech.net/article/1549115148-git-reset-vs-git-revert
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
2021-02-12 16:11:09