C'est un exemple de la façon dont mon git repo est actuellement:
git commit -a -m "Commit msg" git tag -a v1.3 -m "Tag msg" git push --tags
5 Réponses :
Une branche ne fait pas référence à une étiquette. SO tant aussi longtemps que vous Si vous étiez dans une tête de tête détachée, voir " Git: Comment puis-je réconcilier code> tête code> avec
Une balise références A fixe em> commit. P>
Git Checkout Master CODE>, vous n'êtes pas dans un Mode tête détachée .
Vous pouvez ensuite vous engager et tag: la balise sera créée sur la dernière succursale de la branche actuelle. P>
maître / origine code>?
" Pour diverses moyens de concilier une commission détachée avec une branche. p>
La branche principale actuelle est obsolète, donc si je vous commande, je perds des modifications appliquées dans V1.1 et V1.2.
@Peter Avez-vous fusionné vos modifications à Master pour V1.1 et V 1.2?
@stanley_Manley Peter n'a pas connecté au débordement de pile en ... Cinq ans (dernière fois 19/05/2016). Il pourrait ou pourrait ne pas répondre;)
Diverses réponses / commentaires déjà donnés sur pourquoi ne pas faire les choses de cette façon, mais voici la manière dont vous corrigez ce scénario particulier:
git checkout -b somebranch refs/tags/tagname # creates a new branch starting at tag
Le problème avec cette solution est que j'aurais une succursale pour chaque balise que j'ai dans le repo.
@Peter uniquement si vos tags sont toutes sur des lignes de développement distinctes, qu'il n'apparaît pas, c'est le cas de votre question initiale. Vous auriez une branche, comme maître code>, avec une balise
v2.0 code> pointant vers une commission récente sur cette branche et des balises antérieures (par exemple,
v1.9 < / Code>,
v1.8 code> ....) pointant vers ANTHIER commet la même branche. Une branche est censée indiquer "quel sera le parent du prochain commettre que je fais". La commande ci-dessus
Checkout CODE> est indiquée lorsque vous devez consulter une ancienne tag (-er) afin de préparer une solution de bogue pour elle ou quelque chose, pas pour le développement actuel ...
Dans ce cas particulier, je devais procéder comme suit:
1) Définit d'abord la branche principale sur la dernière étiquette (où la tête pointe), car est la dernière étiquette. Pour ce faire, j'ai créé une nouvelle succursale et fusionné le maître. P> Master est identique à la dernière étiquette: p> 2) Une fois que nous avons de la place à la place, nous devons pousser à la fois des maîtres et des tags chaque fois que nous faisons un nouveau commit: p> de cette façon, nous avions Le mode tête détaché et la branche principale sont mis à jour. P> p>
Commentaires intéressants, plus complet que ma réponse. +1
Checkout GIT -B Head Master Code> Effectue votre étape 1 directement.
Les balises sont utilisées pour créer des versions stables. Pour créer une étiquette pour utiliser avec le référentiel DRUPAL GIT, assurez-vous d'abord que vous suivez la convention de nommage des balises si vous utilisez cette balise pour effectuer une libération. De l'intérieur du répertoire du projet, un exemple est: p>
Une fois la balise créée, vous devez appuyer sur la balise jusqu'au référentiel principal. En soi, poussoir n'envoie pas les éjaculations, vous devez également le dire d'inclure les balises dans la poussée en ajoutant le drapeau --tags: p>
Si vous ne voulez pas pousser toutes vos tags, vous pouvez également être spécifique:
Exemple: p>
Pour vérifier et confirmer les étiquettes distantes, la commande est: - p>
git tag 7.x-1.0 code> p>
git push -tags code> p>
GIT Push Origin Tag 7.x-1.0 Code> P>
GIT TAG -L CODE> P>
J'ai résolu le problème comme celui-ci:
git checkout -B master HEAD git push --force origin master
Quel est votre flux de travail? Pourquoi es-tu toujours dans un état de tête détaché? Pourquoi ne travaillez-vous pas sur une succursale? Je pense que c'est plus un problème avec votre flux de travail que toute autre chose.
Si vous ne consultez pas une balise directement, cela ne se produira pas. Ne faites que de nouveaux engagements après avoir vérifié une branche branche i>, jamais une balise i>.
Pour pouvoir générer des fichiers de package dans le repo, j'ai besoin de les étiqueter, sinon ils deviennent "A3FSR2", par exemple, c'est pourquoi j'ai besoin d'utiliser des balises.