Jak naprawić błąd Git & lsquo; Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalenie & rsquo;

Komunikat o błędzie „ Twoje lokalne zmiany w następujących plikach zostaną nadpisane przez scalenie ” pojawia się 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

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 „ Pull” oznacza, że jesteś ciągnąc ostatnią wersję repozytorium na lokalnym przechowywania / IDE (Integrated Development Environment), takie jak pycharm etc.

Po ściągnięciu wprowadzasz zmiany w kodzie lub dodajesz więcej funkcji. Gdy skończysz, „ wypychasz” kod do repozytorium, aby zmiany zostały zapisane i uzupełnione. 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 tej samej stronie, zanim przejdziecie dalej. 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 nie dbasz o zmiany dokonane 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, włącz 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ę dla Ciebie realną opcją, rozważ wykonanie rebase. 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 zatwierdzić wszystko, czego nie chcesz nadpisać, a następnie zastosować 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.