Ik heb een externe Git-repository gekloond naar mijn laptop, en toen wilde ik een tag toevoegen, dus ik rende
git tag mytag master
Als ik git tag
op mijn laptop uitvoer, wordt de tag mytag
getoond. Ik wil dit dan naar de externe repository pushen, zodat ik deze tag op al mijn clients heb, dus ik voer git push
uit, maar ik kreeg het bericht:
Alles up-to-date
En als ik naar mijn bureaublad ga en git pull
uitvoer en dan git tag
worden er geen tags getoond.
Ik heb ook geprobeerd een kleine wijziging aan een bestand in het project aan te brengen en het vervolgens naar de server te pushen. Daarna kon ik de wijziging van de server naar mijn desktopcomputer trekken, maar er is nog steeds geen tag bij het uitvoeren van git tag
op mijn desktopcomputer.
Hoe kan ik mijn tag naar de externe repository pushen zodat alle clientcomputers deze kunnen zien?
Antwoord 1, autoriteit 100%
Een enkeletag pushen:
git push origin <tag_name>
En het volgende commando zou alletags moeten pushen (niet aanbevolen):
# not recommended
git push --tags
Antwoord 2, autoriteit 33%
git push --follow-tags
Dit is een verstandige optie geïntroduceerd in Git 1.8.3:
git push --follow-tags
Het pusht zowel commits als alleen tags die beide zijn:
- geannoteerd
- bereikbaar (een voorouder) van de gepushte commits
Dit is logisch omdat:
- moet je alleen duwen geannoteerde tags om de afstandsbediening en houd lichtgewicht tags voor lokale ontwikkeling te voorkomen tag botsingen. Zie ook: Wat is het verschil tussen een geannoteerde en unannotated tag
- het zal niet duwen geannoteerde tags op niet-gerelateerde branches
Het is om die redenen dat --tags
moet worden vermeden
Git 2.4 heeft toegevoegd de push.followTags
optie om die vlag schakelen standaard die u kunt instellen met:
git config --global push.followTags true
of door toevoeging followTags = true
naar [push]
van de ~/.gitconfig
.
Antwoord 3, Autoriteit 7%
Om push specifieke, een tag je het volgende doen
git push origin tag_name
Antwoord 4, Autoriteit 3%
Uit te breiden op Trevor’s antwoord , kunt u een enkele tag of alle duw je
labels in een keer.
Schuif een Single Tag
git push <remote> <tag>
Dit is een samenvatting van de relevante documentatie dat verklaart dit (sommige
commando-opties weggelaten voor beknoptheid):
git push [[<repository> [<refspec>…]] <refspec>...
De opmaak van een
<refspec>
parameter … bron ref<src>
,
gevolgd door een dubbele punt:
, gevolgd door de bestemming ref<dst>
…
<dst>
geeft aan welke referentie aan de verre zijde wordt bijgewerkt met deze
push…Als:<dst>
wordt weggelaten, wordt dezelfde ref als<src>
gebruikt
bijgewerkt…tag
<tag>
betekent hetzelfde alsrefs/tags/<tag>:refs/tags/<tag>
.
Duw al uw tags tegelijk
git push --tags <remote>
# Or
git push <remote> --tags
Hier is een samenvatting van de relevante documentatie(sommige commando-opties
kortheidshalve weggelaten):
git push [--all | --mirror | --tags] [<repository> [<refspec>…]] --tags
Alle refs onder
refs/tags
worden gepusht, naast expliciete refspecs
vermeld op de opdrachtregel.
Antwoord 5, autoriteit 2%
Je kunt alle lokale tags pushen met de opdracht git push --tags
.
$ git tag # see tag lists
$ git push origin <tag-name> # push a single tag
$ git push --tags # push all local tags
Antwoord 6, autoriteit 2%
Tags worden niet verzonden naar de externe repository door het git push-commando. We moeten deze tags expliciet naar de externe server sturen met behulp van de volgende opdracht:
git push origin <tagname>
We kunnen alle tags tegelijk pushen door het onderstaande commando te gebruiken:
git push origin --tags
Hier zijn enkele bronnen voor volledige details over git-tagging:
http://www.cubearticle.com/articles/more/git/git-tag
http://wptheming.com/2011/04/add-remove-github-tags
Antwoord 7
Je kunt de tags als volgt pushen git push --tags
Antwoord 8
Ik gebruik git push <remote-name> tag <tag-name>
om ervoor te zorgen dat ik een tag push. Ik gebruik het als volgt: git push origin tag v1.0.1
. Dit patroon is gebaseerd op de documentatie (man git-push
):
OPTIONS
...
<refspec>...
...
tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.
Antwoord 9
Hoe kan ik mijn tag naar de externe repository pushen zodat alle clientcomputers deze kunnen zien?
Voer dit uit om mytag
naar je git-oorsprong te pushen (bijvoorbeeld: GitHub of GitLab)
git push origin refs/tags/mytag
Het is beter om de volledige “refspec” te gebruiken zoals hierboven weergegeven (letterlijk refs/tags/mytag
) voor het geval mytag
eigenlijk v1.0.0
en is dubbelzinnig (bijv. omdat er een branch is met de naam v1.0.0
).
Antwoord 10
Ik heb zoiets als dit gedaan:
git push --tags origin <branch-name> <tag-name>
e.g. : git push --tags origin master v2.0
Antwoord 11
Je kunt ook de beschikbare tools gebruiken om een tag te maken. Een voorbeeld van Git Extensions en Source tree is toegevoegd.
Als u wilt dat de tag naar de vertakking op afstand wordt verplaatst, selecteert u “Tag naar oorsprong pushen” en pusht u uw tag. Dit zal andere ontwikkelaars helpen om een specifieke plek te gebruiken of ernaar te verwijzen, wanneer ze de laatste van de repository te laat hebben.
Open de repository in GitExtension/sourcetree.
- Selecteer de commit waaraan je een tag wilt toevoegen. Klik met de rechtermuisknop op de vastlegging, je kunt de optie zien om een tag te maken.
- Als andere optie kun je Tag maken selecteren in het hoofdmenu.
- Deze pop-up wordt geopend, voeg de tagnaam toe en selecteer “push tag to origin”, op basis van uw vereisten. Maar liever.