web-dev-qa-db-fra.com

Comment réinitialiser 'maître' à 'Origine/maître'?

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
190
Xiè Jìléi

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.

268
VonC

Git supporte cette commande:

git checkout -B master Origin/master

Vérifiez la branche Origin/master puis réinitialisez la branche master à cet endroit.

83
KindDragon

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

29
Alexander Bird

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.

17
Fuad Saud