Aktualizacja maja 2015 r
Od wersji 2.4.1 możesz to zrobić
git config --global push.followTags true
Jeśli ustawione na true, domyślnie włącz opcję --follow-tags.
Możesz zignorować tę konfigurację w momencie wypychania, określając --no-follow-tags.
Jak zauważono w tym wątku przez Matta Rogersa, który odpowiedział Wesowi Hurdowi :
--follow-tags wypycha tylko tagi z adnotacjami .
git tag -a -m "I'm an annotation" <tagname>
Zostałoby to popchnięte (w przeciwieństwie do git tag <tagname>lekkiego tagu, który nie zostałby popchnięty, jak wspomniałem tutaj )
Aktualizacja kwietnia 2013 r
Od git 1.8.3 (kwiecień 22d, 2013) , nie będzie już trzeba zrobić 2 polecenia naciskać gałęzie, a następnie wcisnąć tagi :
Nowa --follow-tagsopcja „ ” mówi „ git push”, aby wypychać odpowiednie tagi z adnotacjami podczas wypychania gałęzi .
Możesz teraz spróbować, wypychając nowe zatwierdzenia:
git push --follow-tags
Nie wypchnie to jednak wszystkich lokalnych znaczników, tylko tych, do których odwołują się commits, które są wypychane za pomocą git push.
Git 2.4.1+ (II kwartał 2015 r.) Wprowadzi opcję push.followTags: zobacz „ Jak zrobić”, aby git pushzawierał tagi w oddziale? ”.
Oryginalna odpowiedź, wrzesień 2010 r
Opcja nuklearna byłaby git push --mirror, która zepchnie wszystkie referencje pod refs/.
Możesz również wcisnąć tylko jeden tag z bieżącym zatwierdzeniem gałęzi:
git push origin : v1.0.0
Możesz połączyć --tagsopcję z refspec, takim jak:
git push origin --tags :
(ponieważ --tagsoznacza refs/tagsto, że wszystkie referencje poniżej są wypychane, oprócz referencji wyraźnie wymienionych w wierszu poleceń )
Masz również ten wpis „ Pchanie gałęzi i tagów za pomocą pojedynczego wywołania „ git push ”
Przydatna wskazówka została właśnie wysłana do listy mailingowej Git przez Zoltána Füzesi:
Używam .git/configdo rozwiązania tego:
[remote "origin"]
url = ...
fetch = +refs/heads/*:refs/remotes/origin/*
push = +refs/heads/*
push = +refs/tags/*
Po dodaniu tych wierszy git push originzostaną przesłane wszystkie gałęzie i tagi. Jeśli chcesz przesłać tylko niektóre z nich, możesz je wymienić.
Nie próbowałem tego jeszcze sam, ale wygląda na to, że może się przydać, dopóki inny sposób wypychania gałęzi i tagów w tym samym czasie nie zostanie dodany do git push.
Z drugiej strony nie mam nic przeciwko pisaniu:
$ git push && git push --tags
Strzeż się , jak skomentował przez Aseem Kishore
push = +refs/heads/*będzie na siłę wpycha wszystkie swoje oddziały .
To mnie teraz ugryzło, więc FYI.
René Scheibe dodaje ten interesujący komentarz :
Ten --follow-tagsparametr wprowadza w błąd, ponieważ .git/refs/tagsbrane są pod uwagę tylko tagi poniżej .
Jeśli git gczostanie uruchomiony, tagi zostaną przeniesione z .git/refs/tagsdo .git/packed-refs. Później git push --follow-tags ...nie działa już zgodnie z oczekiwaniami.
git push && git push --tags?