Was bedeutet Git Reset - Hard Origin / Master?

224

Ich habe einen gemacht git pullund einen Fehler bekommen:

Die folgenden Arbeitsbaumdateien werden durch Zusammenführen überschrieben ... Bitte verschieben oder entfernen Sie sie, bevor Sie sie zusammenführen können.

Um dies zu beheben, habe ich Folgendes getan:

git fetch
git reset --hard origin/master

Wenn ich das tue git pull, steht alles auf dem neuesten Stand. Ich möchte wissen, was genau passiert, wenn ich diese Befehle ausführe. Ich weiß, dass ich git fetchdie Änderungen vom Remote-Repo abrufe, ohne sie in mein lokales Repo zu integrieren.

Was bedeutet das git reset --hard origin/master? Wie funktioniert es?

Raza
quelle

Antworten:

414
git reset --hard origin/master

sagt: Wirf alle meine inszenierten und nicht inszenierten Änderungen weg, vergiss alles in meiner aktuellen lokalen Niederlassung und mache es genau so wie origin/master.

Sie wollten dies wahrscheinlich fragen, bevor Sie den Befehl ausgeführt haben. Die destruktive Natur wird durch die Verwendung der gleichen Wörter wie in "Hard Reset" angedeutet.

CB Bailey
quelle
9
Sie können diesen Schritt mit rückgängig machen git reset --hard HEAD@{1}. HEAD@{1}variiert von Situation zu Situation, daher wird empfohlen, danach zu suchen git reflog.
Nils Werner
2
Beachten Sie, dass die Methode von @ NilsWerner zum Rückgängigmachen der Verschiebung die bereitgestellten und nicht bereitgestellten Änderungen nicht wiederherstellt. Die sind endgültig weg.
Michael Anderson
3
Bereitgestellte Dateien können weiterhin mit gefunden werden git fsck --lost-found, sie werden jedoch nicht an ihren ursprünglichen Dateipfad angehängt und sind möglicherweise schwer zu sortieren.
CB Bailey
1
Es ist oft nützlich, Ihren lokalen Master-Zweig auf origin / master zurückzusetzen, wenn Sie (möglicherweise versehentlich) Änderungen an Ihrem lokalen Master anstelle eines lokalen Zweigs vorgenommen haben. Erstellen Sie einfach eine lokale Verzweigung für Ihre letzten Commits und setzen Sie Ihren lokalen Master auf origin / master zurück. Sie können dann Ihren Zweig nach Bedarf vom Master zusammenführen oder neu starten.
Mike Hopper
2
lol "angedeutet" ist eine großartige Möglichkeit, dies zu beschreiben, da es bei
weitem