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
4 answers
Git unterstützt diesen Befehl:
git checkout -B master origin/master
Check out the origin/master
- Zweig und dann reset - master
- Zweig gibt.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2017-05-10 18:20:58
Als KindDragon ' s Antwort erwähnt, können Sie master
direkt bei origin/master
neu erstellen mit:
git checkout -B master origin/master
Der git checkout
man page erwähnt:
Wenn -B
angegeben ist, wird <new_branch>
erstellt, wenn es nicht existiert; andernfalls wird es zurückgesetzt. Dies ist das Transaktionsäquivalent von
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
Seit Git 2.23+ (August 2019), seit git checkout
ist zu verwirrend, der neue (noch experimentelle) Befehl ist git switch
:
git switch -C master origin/master
Das heißt:
-C <new-branch> --force-create <new-branch>
Ähnlich wie
--create
außer dass, wenn<new-branch>
bereits existiert, es auf<start-point>
zurückgesetzt wird.
Dies ist eine bequeme Abkürzung für:$ git branch -f <new-branch> $ git switch <new-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.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2019-12-18 15:07:10
Ich denke, sogar VonCs Antwort hat Komplexität im Vergleich zu dieser Option:
git update-ref refs/heads/master origin/master
git reset --hard master
Git protokolliert automatisch jeden Wert eines ref (über das reflog). Nachdem Sie diesen Befehl ausgeführt haben, bezieht sich master@{1}
auf den vorherigen Wert von master.
VonCs Antwort ist korrekt, aber es verschwendet Zeit, den alten Wert von Master im Dateisystem auszuchecken.
Wenn Sie sich für verwaiste Objekte im Repo interessieren, können Sie git gc
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2013-08-22 19:02:34
Wenn Sie bereits auf master
sind, können Sie Folgendes tun:
git reset --hard origin/master
Es zeigt den lokalen Zweig master
auf den entfernten Zweig origin/master
und verwirft alle Änderungen im Arbeitsverzeichnis.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-06-25 15:47:13