Le grand problème ici est que, git fetch
va récupérer refs/heads/*:refs/remotes/$remote/*
. Si l'un de ces révisions ont des étiquettes, ces étiquettes seront également récupérées. Cependant, si il y a des balises pas accessible par n'importe quelle branche sur la télé, ils ne seront pas récupérés.
L' --tags
option active la refspec d' +refs/tags/*:refs/tags/*
. Vous pourriez demandez git fetch
de saisir à la fois. Je suis assez sûr de faire juste un git fetch && git fetch -t
il vous suffit d'utiliser la commande suivante:
git fetch origin refs/heads/*:refs/remotes/origin/* +refs/tags/*:refs/tags/*
Et si vous souhaitez rendre cette valeur par défaut pour ce repo, vous pouvez ajouter un deuxième refspec à la valeur par défaut fetch:
git config --local --add remote.origin.fetch +refs/tags/*:refs/tags/*
Cela va ajouter un deuxième fetch =
ligne dans l' .git/config
de cette distance.
J'ai passé un certain temps à la recherche de la façon de gérer cela pour un projet. C'est ce que je suis venu avec.
git fetch -fup origin +refs/*:refs/*
Dans mon cas, je voulais que ces caractéristiques
- Prenez tous les chefs et les balises de la télécommande pour utiliser refspec
refs/*:refs/*
- Écraser les locaux de branches et de tags avec les fast-forward
+
avant la refspec
- Remplacer extrait de la succursale si nécessaire,
-u
- Supprimer des branches et des tags n'est pas présent dans éloignées
-p
- Et de la force pour être sûr de l'
-f