Puis-je faire ce qui suit d'une manière plus simple?
git checkout Origin/master
git branch -D master
git branch master
git checkout master
Comme KindDragon 's answer mentions, vous pouvez recréer master
directement à Origin/master
avec:
git checkout -B master Origin/master
La page de manuel git checkout
mentionne:
Si -B
est donné, <new_branch>
est créé s'il n'existe pas; sinon, il est réinitialisé . C’est l’équivalent transactionnel de
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
Initialement suggéré:
Quelque chose comme:
$ 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
l'étape 2 étant facultative.
Git supporte cette commande:
git checkout -B master Origin/master
Vérifiez la branche Origin/master
puis réinitialisez la branche master
à cet endroit.
Je pense que même la réponse de VonC est complexe par rapport à cette option:
git update-ref refs/heads/master Origin/master
git reset --hard master
git enregistre automatiquement chaque valeur d’un ref (par le biais du reflog). Donc, après avoir exécuté cette commande, master@{1}
fait référence à la valeur précédente de maître.
La réponse de VonC est correcte, mais elle gaspille du temps en récupérant l'ancienne valeur de master dans le système de fichiers.
Si vous vous souciez d'objets orphelins dans le référentiel, vous pouvez exécuter git gc
Si vous êtes déjà sur master
, vous pouvez effectuer les opérations suivantes:
git reset --hard Origin/master
Il va pointer la branche master
locale vers le Origin/master
distant et ignorer toutes les modifications apportées au répertoire de travail.