2013-05-30 30 views
5

Domyślnym zachowaniem Git jest , a nie wysyłanie znaczników z lokalnego repozytorium do skojarzonego zdalnego. W dokumencie this answer wyjaśniono, jak zmienić to zachowanie dla pojedynczego repozytorium.Dlaczego git domyślnie nie przesyła tagów?

Moje pytanie, to dlaczego jest to zaprojektowane zachowanie Git? W szczególności, jakie są wady ustawienia automatycznego przesuwania tagów?

+1

'tag' jest ** migawką ** repozytorium. Domyślam się, że nie powinien być aktualizowany po naciśnięciu, chyba że wyraźnie chciałbyś, aby został opublikowany. – yuwang

+0

zobacz także http://stackoverflow.com/a/2988182/654952 – yuwang

+0

@yuwang: Już połączony z tą odpowiedzią. Tam jest komentarz, który stawia to samo pytanie, które wciąż pozostaje bez odpowiedzi ... – Dror

Odpowiedz

5

Jeśli wziąć pod uwagę znaczniki dowolnego dużego projektu (kernel linux, git itself ...) byś zobaczyć znaczniki w setek.

Ukazuje VCS jest o publication: co chcesz wcisnąć?
Wszystko? Cały czas?

Przesyłanie wszystkich tagów może zanieczyszczać przestrzeń znaczników z upstream repo.

Przy bieżącym zachowaniu, zachowujesz kontrolę nad tym, co publikujesz, w repozytorium, aby inni mogli je zobaczyć.


Zauważ, że ponieważ git 1.8.3 (kwiecień 2013), to git push --follow-tags może pomóc popchnąć zobowiązuje i skojarzonych z nimi znaczniki w jednym poleceniu.

Zobacz "Push git commits & tags simultaneously".