Ich habe den Hauptzweig meines gegabelten Git-Repos völlig durcheinander gebracht.
Ich möchte den Master-Zweig, der mit dem Inhalt des Upstream-Master-Repos auf meine Gabel geschoben wurde, vollständig zurücksetzen. Ich habe kein Interesse daran, Änderungen oder die Historie des Hauptzweigs beizubehalten.
Der einfachste Ansatz wäre gewesen, mein gespaltenes Repo und meine Refork aus dem Upstream-Projekt zu löschen. Ich habe jedoch Arbeit in anderen Push-Branchen, die ich nicht verlieren möchte.
Wie setze ich also meinen Push-Master-Zweig mit dem Upstream-Master zurück?
git clone https://myrepo.git
cd myrepo
git remote add upstream https://upstream.git
git fetch upstream
Wohin gehe ich von hier aus, um meine lokalen und Remote-Master-Zweige mit dem Upstream-Master zurückzusetzen?
git reset --hard upstream/master
, das Arbeitsverzeichnis zurückzusetzen. Aber Ihre Antwort ist trotzdem richtig.git fetch upstream
zuerst anrufengit fetch upstream
normalerweise zu dem folgenden nicht vom Menschen lesbaren Fehler:"fatal: ambiguous argument 'upstream/master': unknown revision or path not in the working tree."
Dies würde Ihren Master-Zweig mit dem Upstream-Master zurücksetzen. Wenn der Zweig seit Ihrem Verzweigen aktualisiert wurde, werden auch diese Änderungen übernommen.
PS: Angenommen, Upstream ist das Original-Repo, während Origin Ihre Kopie ist.
quelle
Ich habe die Methode so ausprobiert:
Die Ausgabe zeigt eine Warnung:
Der richtige Weg ist also
git pull
vorher festgelegtgit reset
:dann wird die Ausgabe wie folgt sein:
quelle