$ git checkout master
# remember where the master was referencing to
$ git branch previous_master
# Reset master back to origin/master
$ git reset --hard origin/master
Speichern Sie vier Tastatureingaben - Sie brauchen keine Anführungszeichen. Einfach: git Checkout -B Master Origin / Master
Zumalifeguard
Nehmen wir an, ich habe zwei Dinge festgeschrieben, das erste ist eine Verschmelzung mit einem Zweig und das zweite ist regulär. Was passiert mit der Zusammenführung, wenn ich zum Ursprung / Master zurückkehre?
utdev
1
Musst du nicht git fetch origin mastervorher sicher sein, dass origin/masteres aktualisiert wird?
pedrozath
Ja, natürlich mit allen Lösungen, die Sie git fetchzuerst tun sollten
KindDragon
29
Ich denke, selbst die Antwort von VonC ist im Vergleich zu dieser Option komplex:
git protokolliert automatisch jeden Wert eines Verweises (durch das Reflog). Nachdem Sie diesen Befehl ausgeführt haben, wird master@{1}auf den vorherigen Wert von master verwiesen.
VonCs Antwort ist richtig, aber es verschwendet Zeit, den alten Wert von master in das Dateisystem auszulesen.
Wenn Sie sich für verwaiste Objekte im Repo interessieren, können Sie ausführen git gc
@yourfriendzak, ich habe vergessen zu berücksichtigen, dass Sie möglicherweise den Master bereits ausgecheckt haben, bevor Sie den Master aktualisieren. Ich habe die Antwort so aktualisiert, dass sie auch in diesem Fall funktionieren sollte.
Alexander Bird
Dies funktioniert auch dann, wenn Sie nicht als Master angemeldet sind (wie ein abgelöster HEAD-Status, der tatsächlich auf den Spitzenursprung / Master verweist). Dann können Sie den Master auschecken, ohne alte Dateien durch das Repo blättern zu müssen. Toll!
Andrew Mao
20
Wenn Sie bereits masterangemeldet sind, können Sie Folgendes tun:
git reset --hard origin/master
Der lokale masterZweig wird auf die entfernte origin/masterStation verwiesen, und alle Änderungen im Arbeitsverzeichnis werden verworfen.
Antworten:
Wie in der Antwort von KindDragon erwähnt, können Sie
master
direkt bei Folgendes neu erstellenorigin/master
:Die
git checkout
Manpage erwähnt:Wenn
-B
angegeben,<new_branch>
wird erstellt, wenn es nicht vorhanden ist. Andernfalls wird es zurückgesetzt . Dies ist das Transaktionsäquivalent vonUrsprünglich vorgeschlagen:
So etwas wie:
wobei Schritt 2 optional ist.
quelle
Git unterstützt diesen Befehl:
Überprüfen Sie den
origin/master
Zweig und setzen Sie ihnmaster
dort zurück.quelle
git fetch origin master
vorher sicher sein, dassorigin/master
es aktualisiert wird?git fetch
zuerst tun solltenIch denke, selbst die Antwort von VonC ist im Vergleich zu dieser Option komplex:
git protokolliert automatisch jeden Wert eines Verweises (durch das Reflog). Nachdem Sie diesen Befehl ausgeführt haben, wird
master@{1}
auf den vorherigen Wert von master verwiesen.VonCs Antwort ist richtig, aber es verschwendet Zeit, den alten Wert von master in das Dateisystem auszulesen.
Wenn Sie sich für verwaiste Objekte im Repo interessieren, können Sie ausführen
git gc
quelle
Already on 'master'
Wenn Sie bereits
master
angemeldet sind, können Sie Folgendes tun:git reset --hard origin/master
Der lokale
master
Zweig wird auf die entfernteorigin/master
Station verwiesen, und alle Änderungen im Arbeitsverzeichnis werden verworfen.quelle
git checkout -B master origin/master
?