Jak naprawić błąd Git „Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalenie”



Wypróbuj Nasz Instrument Do Eliminowania Problemów

Komunikat o błędzie „ Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalenie ”Występuje w mechanizmie kontroli wersji Git. Ten błąd występuje, jeśli zmodyfikowałeś plik, który również zawiera modyfikacje w zdalnym repozytorium.



Błąd Git: Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalenie podczas kodowania

Błąd Git: Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalenie



Ten komunikat o błędzie jest unikany, JEŚLI nie ma niezatwierdzonych plików, które również mają modyfikacje w zdalnym repozytorium. Gdy doświadczasz tej wiadomości, najlepiej skonsultuj się z innymi członkami zespołu i poproś o ich opinię. Niezależnie od tego, czy chcesz scalić lokalne zmiany, czy zachować wersję obecną w repozytorium, najlepiej jest mieć wszystkich na pokładzie.



Co to są repozytoria? Co to jest push and pull w Git?

Repozytorium to rodzaj magazynu dla kodu, który jest stale modyfikowany i pozyskiwany przez członków zespołu za pośrednictwem mechanizmu kontroli wersji GitHub. A „ Ciągnąć' oznacza, że ​​pobierasz najnowszą wersję repozytorium do lokalnego magazynu / IDE (zintegrowanego środowiska programistycznego), takiego jak Pycharm itp.

Po ściągnięciu wprowadzasz zmiany w kodzie lub dodajesz więcej funkcji. Kiedy skończysz, Pchać' kod do repozytorium, dzięki czemu zmiany są zapisywane i uzupełniane. Kod staje się również dostępny dla innych osób.

Jeśli nie masz doświadczenia z kontrolą wersji Github, zalecamy najpierw zapoznanie się ze wszystkimi podstawami. W tym artykule zakładamy, że masz już podstawową wiedzę i znasz wszystkie tajniki.



Jak naprawić „Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalenie”?

Rozwiązanie tego komunikatu o błędzie zależy od tego, co chcesz zrobić. Możesz odrzucić lokalne zmiany i pobrać te z repozytorium lub zapisać lokalne zmiany w skrytce i pobrać wersję z repozytorium. Wszystko zależy od twoich preferencji.

Dlatego zalecamy skonsultowanie się z członkami zespołu i upewnienie się, że wszyscy jesteście na platformie ta sama strona przed przejściem do przodu. Jeśli popełnisz błąd lub wprowadzisz złą wersję, może to wpłynąć na cały zespół.

Metoda 1: Wymuszenie ściągnięcia w celu zastąpienia lokalnych zmian

Jeśli ty nie dbają o zmiany wprowadzone lokalnie i chcesz uzyskać kod z repozytorium, możesz wymusić ściągnięcie. Spowoduje to nadpisanie wszystkich lokalnych zmian dokonanych na komputerze i pojawi się zduplikowana kopia wersji w repozytorium.

Wykonaj następujące polecenia w swoim IDE:

git reset - hard git pull

Spowoduje to natychmiastowe zniszczenie wszystkich lokalnych zmian, więc upewnij się, że wiesz, co robisz i nie potrzebujesz zmian lokalnych.

Metoda 2: Zachowanie obu zmian (lokalnych iz repozytorium)

Jeśli chcesz zachować obie zmiany (zmiany dokonane lokalnie i zmiany obecne w repozytorium), możesz dodać i zatwierdzić swoje zmiany. Kiedy pociągniesz, oczywiście nastąpi konflikt scalania. Tutaj możesz użyć narzędzi w swoim IDE (takich jak Difftool i Mergetool), aby porównać dwa fragmenty kodu i określić, które zmiany zachować, a które usunąć. To jest środkowa droga; żadne zmiany nie zostaną utracone, dopóki nie usuniesz ich ręcznie.

git dodaj $ the_file_under_error git commit git pull

Kiedy pojawi się konflikt scalania, wyskakuj te narzędzia do rozwiązywania konfliktów i sprawdzaj wiersz po wierszu.

Metoda 3: Zachowanie obu zmian, ALE ich nie zatwierdzenie

Taka sytuacja zdarza się od czasu do czasu, gdy programiści nie są gotowi do zatwierdzenia, ponieważ istnieje jakiś częściowo uszkodzony kod, który debugujesz. Tutaj możemy bezpiecznie przechowywać zmiany, wyciągnąć wersję z repozytorium, a następnie rozpakować kod.

git stash save --keep-index

lub

git stash
git pull git stash pop

Jeśli po otwarciu skrytki pojawią się konflikty, powinieneś rozwiązać je w zwykły sposób. Możesz też użyć polecenia:

git stash Apply

zamiast popu, jeśli nie jesteś gotowy na utratę ukrytego kodu z powodu konfliktów.

Jeśli scalanie nie wydaje się odpowiednią opcją, rozważ wykonanie ponownej bazy danych. Rebasing to proces przenoszenia lub łączenia sekwencji zatwierdzeń do nowego zatwierdzenia podstawowego. W przypadku zmiany bazy, zmień kod na:

git stash git pull --rebase origin master git stash pop

Metoda 4: wprowadź zmiany w „określonych” częściach kodu

Jeśli chcesz wprowadzić zmiany w określonych częściach kodu i nie chcesz zastępować wszystkiego, możesz popełnić wszystko, czego nie chcesz nadpisywać, a następnie postępuj zgodnie z metodą 3. Możesz użyć następującego polecenia do zmian, które chcesz nadpisać z wersji obecnej w repozytorium:

git checkout path / to / file / to / revert

lub

git checkout HEAD ^ ścieżka / do / pliku / do / przywróć

Musisz również upewnić się, że plik nie jest przemieszczany przez:

git reset HEAD path / to / file / to / revert

Następnie wykonaj polecenie pull:

git pull

Spowoduje to następnie próbę pobrania wersji z repozytorium.

3 minuty czytania