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
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
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
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 corefs/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ń.
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
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:
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
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>.
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
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
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