850 Stimmen

Wie ignoriere ich einen Fehler bei 'git pull', der besagt, dass meine lokalen Änderungen durch den Merge überschrieben würden?

Wie ignoriere ich die folgende Fehlermeldung bei Git pull?

Ihre lokalen Änderungen an den folgenden Dateien würden durch den Merge überschrieben

Was ist, wenn ich sie überschreiben möchte?

Ich habe Dinge wie git pull -f ausprobiert, aber nichts funktioniert.

Um es klar zu sagen, ich möchte nur bestimmte Änderungen überschreiben, nicht alles.

627voto

Daniel Hilgarth Punkte 165768

Wenn Sie alle lokalen Änderungen - einschließlich Dateien, die von git nicht verfolgt werden - aus Ihrem Arbeitskopie entfernen möchten, legen Sie sie einfach auf Eis:

git stash push --include-untracked

Wenn Sie sie nicht mehr benötigen, können Sie dieses Stash jetzt verwerfen:

git stash drop

Wenn Sie Änderungen, die Sie bereits gestaged haben - z.B. mit git add - nicht auf Eis legen möchten, fügen Sie die Option --keep-index hinzu. Beachten Sie jedoch, dass dies immer noch das Zusammenführen verhindern wird, wenn diese gestagten Änderungen mit den Änderungen von upstream kollidieren.


Wenn Sie nur bestimmte Teile Ihrer lokalen Änderungen überschreiben möchten, gibt es zwei Möglichkeiten:

  1. Kommitieren Sie alles, was Sie nicht überschreiben möchten, und verwenden Sie die oben genannte Methode für den Rest.

  2. Verwenden Sie git checkout pfad/zur/datei/die/rückgängig gemacht werden soll für die Änderungen, die Sie überschreiben möchten. Stellen Sie sicher, dass die Datei nicht gestaged ist, indem Sie git reset HEAD pfad/zur/datei/die/rückgängig gemacht werden soll verwenden.

433voto

kravits88 Punkte 11453

Dies funktioniert für mich, um alle lokalen Änderungen außer Kraft zu setzen und benötigt keine Identität:

git reset --hard
git pull

422voto

mae Punkte 13671

Okay, mit Hilfe der anderen beiden Antworten habe ich eine direkte Lösung gefunden:

git checkout HEAD^ Datei/überschreiben
git pull

123voto

Brian Knoblauch Punkte 19629

Es gibt hier so viele Antworten, dass ich ungern noch eine weitere hinzufügen würde, aber alle oben genannten sind umständlicher, als sie sein müssten. Ich muss das die ganze Zeit machen, da Git anscheinend verwirrt wird und behauptet, ich habe Dateien geändert, die sich nicht geändert haben (kann nicht zurücksetzen, weil sie sich nicht geändert haben, aber ich kann nicht pullen, weil sie angeblich geändert wurden). Das einfachste und schnellste, das ich bisher gefunden habe, ist:

git stash
git stash drop
git pull

HINWEIS: Lokale Änderungen gehen verloren

81voto

Aftershock Punkte 4950

Hier ist eine Lösung, die Änderungen verwirft:

git reset datei/zum/überschreiben
git checkout datei/zum/überschreiben

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X