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
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 le mentionne la réponse de KindDragon, vous pouvez recréer master
directement à partir de origin/master
avec :
git checkout -B master origin/master
La page man de git checkout
mentionne :
Si -B
est donné, est créé s'il n'existe pas ; sinon, il est réinitialisé. Cela équivaut à la transaction :
$ git branch -f []
$ git checkout
Depuis Git 2.23+ (août 2019), comme git checkout
est trop confus, la nouvelle commande (encore expérimentale) est git switch
:
git switch -C master origin/master
C'est à dire :
-C --force-create
Similaire à
--create
sauf que si existe déjà, il sera réinitialisé à .
C'est un raccourci pratique pour :$ git branch -f $ git switch
Initialement suggéré :
Quelque chose comme :
$ git checkout master
# se souvenir où le master faisait référence
$ git branch previous_master
# Réinitialiser master à origin/master
$ git reset --hard origin/master
avec l'étape 2 étant facultative.
Merci VonC, j'ai mis à jour pour accepter la réponse de @KindDragon comme cher que vous avez suggéré. La technique avance toujours. Cela fait déjà 10 ANS !! Je vous aime les gars!! ^_^
Enregistrer quatre frappes de touche - vous n'avez pas besoin des guillemets. Juste : git checkout -B master origin/master
Disons que j'ai commis 2 choses, la première est une fusion avec la branche et la seconde est régulière. Que se passe-t-il avec la fusion si je retourne à l'origine/master?
Je pense même que 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'une référence (via le reflog). Ainsi, après avoir exécuté cette commande, master@{1}
fera référence à la valeur précédente de master.
La réponse de VonC est correcte, mais elle gaspille du temps en vérifiant l'ancienne valeur de master dans le système de fichiers.
Si vous vous souciez des objets orphelins dans le dépôt, vous pouvez exécuter git gc
@yourfriendzak, J'avais oublié de tenir compte du fait que vous pourriez déjà avoir maître vérifié avant de mettre à jour maître. J'ai mis à jour la réponse pour qu'elle fonctionne même dans ce cas.
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.
0 votes
Parfois, cela peut être fait sans toucher l'arborescence de travail : stackoverflow.com/a/12343727/586086
8 votes
Veuillez mettre à jour votre réponse acceptée : la réponse de @KindDragon est plus correcte et plus courte.