Jak wypchnąć znacznik do zdalnego repozytorium za pomocą Gita?

Sklonowałem zdalne repozytorium Git do mojego laptopa, potem chciałem dodać tag, więc uruchomiłem

git tag mytag master

Kiedy uruchamiam git tag na moim laptopie wyświetlany jest znacznik mytag. Następnie chcę wcisnąć to do zdalnego repozytorium, więc mam ten tag na wszystkich moich klientach, więc uruchamiam git push, ale dostałem wiadomość:

Wszystko aktualne

I jeśli wejdę na pulpit i uruchomię git pull i wtedy git tag nie będą wyświetlane żadne znaczniki.

Próbowałem też zrobić drobną zmianę na pliku w projekt, a następnie wypchnij go na serwer. Po tym mogłem pobrać zmiany z serwera na mój komputer stacjonarny, ale nadal nie ma znacznika podczas uruchamiania git tag na moim komputerze stacjonarnym.

Jak mogę przesunąć swój znacznik do zdalnego repozytorium, aby wszystkie komputery klienckie mogły go zobaczyć?

10 answers

Aby wcisnąć pojedynczy tag:

git push origin <tag_name>

I następujące polecenie powinno wypchnąć wszystkie znaczniki (niezalecane):

git push --tags
 2594
Author: Trevor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-10-14 11:23:38

git push --follow-tags

Jest to rozsądna opcja wprowadzona w Git 1.8.3:

git push --follow-tags

Wypycha zarówno commity, jak i tylko tagi, które są obydwoma:

  • Przypisy
  • reachable (an another) from the pushed commits

Jest to rozsądne, ponieważ:

  • należy tylko wciskać znaczniki z adnotacjami do pilota i przechowywać lekkie znaczniki dla lokalnego rozwoju, aby uniknąć kolizji znaczników. Zobacz też: Jaka jest różnica między annotacją a annotacją tag?
  • nie będzie naciskać znaczników z przypisami na niepowiązanych gałęziach

Właśnie z tych powodów należy unikać --tags.

Git 2.4 dodał opcję push.followTags aby domyślnie włączyć tę flagę, którą można ustawić za pomocą:

git config --global push.followTags true
 717
Author: Ciro Santilli 新疆改造中心 六四事件 法轮功,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-05-19 08:07:31

Aby nacisnąć konkretny, jeden znacznik wykonuje następujące git push origin tag_name

 231
Author: solgar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-10-24 14:43:31

Aby rozwinąć odpowiedź Trevora, możesz nacisnąć pojedynczy znacznik lub wszystkie swoje tagi na raz.

Wciśnij pojedynczy znacznik

git push <remote> <tag>

Jest to streszczenie odpowiedniej dokumentacji , która wyjaśnia to (niektóre opcje polecenia pominięte dla zwięzłości):

git push [[<repository> [<refspec>…]]

<refspec>...

Format parametru <refspec> to ... źródło ref <src>, po którym następuje dwukropek :, po którym następuje ref <dst>...

<dst> mówi, który ref na odległej stronie jest aktualizowana tym push ... jeśli {[9] } zostanie pominięte, to ten sam ref co {[5] } będzie aktualizacja ...

Znacznik <tag> oznacza to samo co refs/tags/<tag>:refs/tags/<tag>.

Push all of Your Tags at Once

git push --tags <remote>
# Or
git push <remote> --tags

Oto podsumowanie odpowiedniej dokumentacji (niektóre opcje poleceń pominięte dla zwięzłości):

git push [--all | --mirror | --tags] [<repository> [<refspec>…]]

--tags

Wszystkie refy pod {[13] } są wypychane, oprócz refspeców jawnie wymienione w wierszu poleceń.

 76
Author: Community,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 12:10:44

Możesz wcisnąć znaczniki w ten sposób git push --tags

 41
Author: Fernando Diaz Garrido,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-03-04 15:40:47

Tagi nie są wysyłane do zdalnego repozytorium przez polecenie git push. Musimy jawnie wysłać te znaczniki do zdalnego serwera za pomocą następującego polecenia:

git push origin <tagname>

Możemy wypchnąć wszystkie znaczniki na raz za pomocą poniższego polecenia:

git push origin --tags

Oto kilka zasobów, aby uzyskać szczegółowe informacje na temat tagowania Gita:

Http://www.cubearticle.com/articles/more/git/git-tag

Http://wptheming.com/2011/04/add-remove-github-tags

 39
Author: Ashutosh Meher,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-01-10 05:57:19

Możesz wcisnąć lokalne tagi za pomocą komendy git push --tags.

$ git tag                            # see tag lists
$ git push origin <tag-name>         # push a single tag
$ git push --tags                    # push all local tags 
 12
Author: Sajib Khan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-06-15 20:53:27

Używam git push <remote-name> tag <tag-name>, aby upewnić się, że naciskam tag. Używam go jak: git push origin tag v1.0.1. Wzór ten jest oparty na dokumentacji (man git-push):

OPTIONS
   ...
   <refspec>...
       ...
       tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>.
 2
Author: Carl G,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-04-18 18:24:16

Proszę nie używać go, jeśli tylko szukasz polecenia, ponieważ głównym zamiarem tego rozwiązania jest wprowadzenie sposobu rozwiązania !

Aby ułatwić życie-napisałem skrypt Git-cheat-sheet , który zawiera kilka przydatnych poleceń, w tym:

./git_commands.sh -push_tag TAG_NAME

 0
Author: Monir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-27 08:50:32

Jeśli pracujesz w oddziale:

git push --tags origin branch_name
 -7
Author: Matias,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-26 15:39:52