Ponieważ utworzyłem moje repozytorium, wydaje się, że tagi, które tworzyłem, nie są wypychane do repozytorium. Kiedy robię to git tag
w lokalnym katalogu, wszystkie tagi są obecne, ale kiedy loguję się do zdalnego repozytorium i robię to git tag
, pojawia się tylko kilka pierwszych.
Jaki może być problem ?.
git push --follow-tags
może być teraz użyteczne, patrz moja odpowiedź poniżejOdpowiedzi:
Możesz to zrobić:
źródło
git push --tags
ponieważ bardzo trudno jest pozbyć się złych tagów, gdy twoi współpracownicy są szkoleni do wypychania wszystkich tagów, ponieważ ludzie nadal wypychają stare złe etykiety, które mają lokalnie za każdym razem, gdy chcę wcisnąć nowy tag. Z tego powodu doradzęgit push origin <tag_name>
teraz tylko komuś, kto będzie go używać ”. - skopiowane ze stackoverflow.com/a/5195913/4130619W domyślnej konfiguracji zdalnej git musisz jawnie wypychać tagi (gdy są one pobierane automatycznie wraz z zatwierdzeniami, które wskazują). Musisz użyć
wcisnąć pojedynczy tag lub
wcisnąć wszystkie tagi (lub
git push --tags
wcisnąć domyślnie pilotaorigin
).Jest to bardzo zamierzone zachowanie, aby jawnie przesuwać tagi. Naciskanie tagów powinno być zwykle świadomym wyborem.
Podsumowanie tego, co napisał Junio C. Hamano (link w komentarzach @Andre Miras)
Dlatego
git fetch
automatycznie „podąża” za tagami, tzn. Pobiera tagi podczas pobierania wersji, na które wskazują - innymi słowy, pobiera wszystkie odpowiednie opublikowane tagi.Dlatego musisz wyraźnie nacisnąć tag, aby oznaczyć tag jako publiczny.
Alternatywnie możesz skonfigurować pilota, do którego naciskasz, aby zawsze wypychał wszystkie tagi, np. Wstawiał coś takiego
.git/config
:Oznacza to wymuszone pchanie wszystkich głów (wszystkie gałęzie) i wszystkie tagi (jeśli nie chcesz wymuszonego pchania głów, usuń prefiks „+” z refspec).
źródło
Zwróć uwagę, że od git 1.8.3 (22 kwietnia 2013 r.) Nie musisz już wykonywać 2 poleceń, aby wypychać gałęzie, a następnie wypychać tagi:
Możesz teraz spróbować, wypychając nowe zatwierdzenia:
Nie wypchnie to jednak wszystkich lokalnych znaczników, tylko te z adnotacjami, do których odwołują się commits, które są wypychane za pomocą
git push
.Zostało to wprowadzone w zatwierdzeniu c2aba15 przez Junio C. Hamano (
gitster
) :Konfiguracja
push.followTags
pozwala--follow-tags
domyślnie uwzględnić (Git 2.4.1+, Q2 2015). Zobacz „ Wciśnij zatwierdzenia i tagi jednocześnie git ”źródło
git push --follow-tags
nie naciska więcej niżgit push
Zwykle robię to:
Oznacza to, że wypycha każdą gałąź, która już tam jest, plus tagi. Nie wymusza pushowania i nie wypycha gałęzi, których nie wypchnąłeś ręcznie.
źródło
A jeśli chcesz wymusić pobranie wszystkich tagów, możesz ustawić to w konfiguracji przez:
Z dokumentów:
źródło