Geschichte ändern
Wenn es sich um das letzte Commit handelt, können Sie dies einfach tun:
git commit --amend
Dadurch wird der Editor mit der letzten Festschreibungsnachricht aufgerufen und Sie können die Nachricht bearbeiten. (Sie können verwenden, -m
wenn Sie die alte Nachricht löschen und eine neue verwenden möchten.)
Schieben
Und wenn Sie dann drücken, tun Sie Folgendes:
git push --force-with-lease <repository> <branch>
Oder Sie können "+" verwenden:
git push <repository> +<branch>
Oder Sie können verwenden --force
:
git push --force <repository> <branch>
Seien Sie vorsichtig, wenn Sie diese Befehle verwenden.
Wenn jemand anderes Änderungen in denselben Zweig verschoben hat, möchten Sie wahrscheinlich vermeiden, diese Änderungen zu zerstören. Die --force-with-lease
Option ist die sicherste, da sie abgebrochen wird, wenn vorgelagerte Änderungen vorgenommen werden (
Wenn Sie den Zweig nicht explizit angeben, verwendet Git die Standard-Push-Einstellungen. Wenn Ihre Standard-Push-Einstellung "Matching" ist, können Sie Änderungen an mehreren Zweigen gleichzeitig zerstören.
Danach ziehen / holen
Jeder, der bereits gezogen hat, erhält jetzt eine Fehlermeldung und muss diese aktualisieren (vorausgesetzt, er nimmt selbst keine Änderungen vor), indem er Folgendes tut:
git fetch origin
git reset --hard origin/master # Loses local commits
Seien Sie vorsichtig bei der Verwendung reset --hard
. Wenn Sie Änderungen am Zweig haben, werden diese Änderungen zerstört.
Ein Hinweis zum Ändern des Verlaufs
Die zerstörten Daten sind eigentlich nur die alte Festschreibungsnachricht, --force
wissen das aber nicht und löschen auch gerne andere Daten. Stellen Sie sich also vor --force
: "Ich möchte Daten zerstören und weiß genau, welche Daten zerstört werden." Wenn die zerstörten Daten festgeschrieben werden, können Sie häufig alte Festschreibungen aus dem Reflog wiederherstellen. Die Daten werden tatsächlich verwaist anstatt zerstört (obwohl verwaiste Festschreibungen regelmäßig gelöscht werden).
Wenn Sie nicht glauben, dass Sie Daten zerstören, halten Sie sich fern von --force
... schlimmen Dingen können passieren .
Deshalb --force-with-lease
ist es etwas sicherer.