it-swarm.com.de

Wie setze ich 'master' auf 'Origin/master' zurück?

Kann ich auf einfachere Weise Folgendes tun?

git checkout Origin/master
git branch -D master
git branch master
git checkout master
190
Xiè Jìléi

Als KindDragon 's Antwort Erwähnung können Sie master direkt bei Origin/master neu erstellen mit:

git checkout -B master Origin/master

Die git checkout Manpage erwähnt:

Wenn -B angegeben ist, wird <new_branch> erstellt, falls er nicht vorhanden ist. sonst 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.

268
VonC

Git unterstützt diesen Befehl:

git checkout -B master Origin/master

Überprüfen Sie den Zweig Origin/master und setzen Sie dort den Zweig master zurück.

83
KindDragon

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, verweist [email protected]{1} auf den vorherigen Wert von master.

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 git gc ausführen.

29
Alexander Bird

Wenn Sie bereits bei master sind, können Sie Folgendes tun:

git reset --hard Origin/master

Der lokale Zweig master wird auf den entfernten Origin/master verweisen und alle Änderungen im Arbeitsverzeichnis verwerfen.

17
Fuad Saud