Comment puis-je m'engage à un vieux git tag?
Donc, il y a deux mois j'ai migré notre base de code dans SVN vers Git à l'historique des révisions. Immédiatement après, nous avons marqué une nouvelle version et a continué à travailler. Ainsi, alors que nous avons continué à travailler dans la nouvelle balise, certaines personnes ont continué correction de bugs dans l'ancien tag SVN et maintenant, je voudrais tirer de tous ces changements dans cette balise dans Git.
Je peux cloner le tag et faire Git me permettra de faire s'engage en elle, mais je ne peut pas pousser quoi que ce soit avec git push. Vérification de la commande git log, la validation est là, mais git-st me dit que je ne suis pas actuellement sur n'importe quelle branche.
Internet, comment puis-je m'engage à un vieux git tag?
OriginalL'auteur Jon Ursenbach | 2010-11-11
Vous devez vous connecter pour publier un commentaire.
Les balises ne sont pas amovibles. Une fois que vous avez créé un tag à un particulier, valider, vous ne pouvez pas modifier cette balise plus tard.
Il semble que vous signifiait, pour créer une branche à la place. Vous devez créer une nouvelle branche (
git branch branchname && git checkout branchname
) pour vous assurer de ne pas perdre vos commits. Puis poussez la branche pour le dépôt et avoir votre communiqué de presse/bugfixing aux développeurs de travailler dans cette branche de la libération.Malheureusement, vous ne pouvez pas vraiment remplacer les vieilles étiquettes. Mais vous pouvez y renoncer. 🙂
Ouais c'est ce que je suis à la fin. Une douleur dans le cul pour obtenir tous ces vieux s'engage en retour. Merci pour l'aide!
Oh, par les abandonner, je voulais juste oublier... êtes-vous réellement la reconstruction de l'opération à partir de SVN sans eux?
les balises sont amovibles, vous pouvez le faire: git tag -d <balise>, mais sur la télécommande, vous devez l'enlever aussi, avant de vous peut faire un autre tag sync: git push origin --tags
OriginalL'auteur
Si quelqu'un vient ici après une recherche pour "remplacer git tag" ou quelque chose de semblable, je vous recommande l'approche suivante:
par exemple:
Espère que cela aide quelqu'un.
mise à jour, merci @FranMartinez
OriginalL'auteur
- Vous dire de la branche, pas de balise. Les Tags dans Git sont point-à-temps des signets dans votre branche master. Alors que vous POUVEZ remplacer une balise (
git tag -f
), il n'est pas recommandé. Je vais UNIQUEMENT remplacer un tag s'il n'a pas été déployée encore.OriginalL'auteur
Si l'utilisateur est à l'aide de la même branche de l'utilisateur qui a créé la vieille balise puis la première à créer de nouvelles modifications. sinon la caisse de la balise, puis de créer de nouvelles modifications. ensuite, utilisez les étapes ci-dessous pour mettre à jour les tag avec de nouvelles modifications en nombre
git tag -f <old tag name>
git push -f --tags
Total 0 (delta 0), réutilisé 0 (delta 0)
+ ...
<old tag name>
-><old tag name>
(forcé la mise à jour)OriginalL'auteur
Il y a un certain nombre de choses qui se passent ici.
Il semble que vous n'avez pas une compréhension adéquate de l'objectif de git tag. Je vous recommande la lecture de ce page de man et aussi la section pertinente de Pro Git. Pro Git permet également une excellente introduction à l'outil, ainsi que Git Magie.
Comme souligné par d'autres, soit vous déjà créé une branche et sont en train de commettre sur elle et juste à tort identifié comme une balise ici, ou vous avez réellement créé une balise et ont commis de nouvelles s'engage à l'extérieur d'une succursale et c'est assez déroutant. Vous voulez absolument lire sur git branch pour avoir une idée de la façon de l'utiliser si vous ne connaissez pas déjà.
Il semble que vous et votre équipe peut utiliser un flux de travail qui prend en charge plusieurs flux de libération, l'entretien et le développement et pour que je suggère humblement ce excellent guide de Vincent Driessen. J'ai présenté avec mon équipe lors de mon dernier employeur et il a changé la façon dont nous avons travaillé. Lecture qui devrait vous donner une très bonne compréhension de la façon dont git peuvent soutenir au mieux la façon dont il semble que votre équipe peut-être déjà essayer de travailler.
Il n'y a aucun moyen de s'engager à un vieux tag directement. Comme souligné par d'autres, un tag n'est rien, mais un nom pour un commit. Cependant, j'ai quelques réflexions ici, qui peuvent être à votre service.
Vous pouvez toujours vérifier une branche basée sur une étiquette au moyen d'
git checkout -b my-new-branch name-of-tag
. Cela vous donnera la marque nouvelle branche basée sur la balise que vous pouvez ensuite valider. Le partage de cette branche devient aussi simple que de pousser à un public point tactile et de laisser d'autres le tirer vers le bas.Si vous voulez un déplacement de la balise, vous êtes en train de faire quelque chose de " fou " (au moins dans l'esprit des auteurs de git tagla page de manuel. Ils ont en partie raison, en ce que le déplacement des balises sont vraiment juste des chefs de direction et peut donc être simplement une branche. Les balises ne sont pas destinés à faire partie de cette histoire. Si vous avez vraiment envie d'un déplacement de la balise, bien que, vous pouvez l'atteindre en sautant à travers plusieurs anneaux de feu et de faire le grand saut sur le poignard de la fosse en suivant les instructions figurant dans la Re-Marquage De La Section de la
git tag
page de man.OriginalL'auteur
Si je suis la compréhension de votre problème correctement, vous devez créer une branche où les commits sont. Pour ce faire, découvrez la version que vous voulez pousser vers le haut. Dans votre git bash, type:
Cela devrait créer une branche à l'emplacement de votre commit appelé
old-version
. Puis essayer de pousser.OriginalL'auteur
Vous devez créer une nouvelle branche à la position de la balise, supprimez la balise, faire vos commits, recréer de la balise et de pousser.
OriginalL'auteur