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).

Jakieś pomysły?
 829
git
Author: CopsOnRoad, 2013-04-01

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
    lub git checkout -t -f remote/branch

    Lub: Odrzuć lokalne zmiany dla określonego pliku

    Using git checkout filename

 1465
Author: stdcall,
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).

 98
Author: Loganathan,
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?

 33
Author: kenorb,
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

 18
Author: Mr Nobody,
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.

 13
Author: Mike,
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.

 7
Author: Dark Matter,
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:

  1. Zaplanuj swoje lokalne zmiany. (do not commit). Staging jest wymagany do utworzenia poprawki nowych utworzonych plików (ponieważ nadal nie są śledzone)

git add .

  1. Utwórz łatkę do keep record

git diff --cached > mypatch.patch

  1. Odrzuć lokalne zmiany i usuń nowe lokalne pliki

git reset --hard

  1. ciągnij zmiany

git pull

  1. 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.

 5
Author: Manpreet,
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>

 4
Author: Yeshi,
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*
 4
Author: Dipanwita Mallick,
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
 3
Author: Rahul Mankar,
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.

 3
Author: Leo,
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.

 0
Author: CodyBugstein,
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
 0
Author: Keith Turkowski,
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

Potem zadziałało. mam nadzieję, że ta odpowiedź pomoże.:)
 0
Author: Sophie cai,
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:

Tutaj wpisz opis obrazka

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:

Tutaj wpisz opis obrazka

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" /

 0
Author: Bizhan,
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

 0
Author: Eugen Konkov,
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

 0
Author: Sanaullah Ahmad,
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

 0
Author: Jan,
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