Kann ich auf einfachere Weise Folgendes tun?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Kann ich auf einfachere Weise Folgendes tun?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Antworten:
Wie in der Antwort von KindDragon erwähnt, können Sie master
direkt bei Folgendes neu erstellen origin/master
:
git checkout -B master origin/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 von
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
Ursprünglich vorgeschlagen:
So etwas wie:
$ 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
wobei Schritt 2 optional ist.
Git unterstützt diesen Befehl:
git checkout -B master origin/master
Überprüfen Sie den origin/master
Zweig und setzen Sie ihn master
dort zurück.
git fetch origin master
vorher sicher sein, dass origin/master
es aktualisiert wird?
git fetch
zuerst tun sollten
Ich denke, selbst die Antwort von VonC ist im Vergleich zu dieser Option komplex:
git update-ref refs/heads/master origin/master
git reset --hard master
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
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 entfernte origin/master
Station verwiesen, und alle Änderungen im Arbeitsverzeichnis werden verworfen.
git checkout -B master origin/master
?