2009-11-24 8 views
10

W swoim 2005 email to the Linux Kernel mailing list Linus Torvalds jest bardzo stanowczy, że tagi w git powinny być prywatne i nie mogą być automatycznie uwzględniane podczas pobierania od innych:Tagi globalne Git --- ewidentnie złe, ale dlaczego?

Ciągnięcie regularny głowę nie może i koniecznościąnie tagi aktualizacji . Tagi nie są związane z drzewem, a oni nie może i koniecznościąnie być tak, dokładnie dlatego, że ich globalny zamiast prywatnych, a to fundamentalnie nie czyńcie im być dystrybuowane

oraz:

jest źle, źle, źlemyśleć, że ściągam ktoś elses drzewo środki że powinieneś pobrać jego tagi.

Nie jestem haker kernal. Jednym z powodów, dla których używam gita, jest możliwość edytowania własnego kodu z różnych lokalizacji. Tagi wydają się być naturalnym sposobem opisywania różnych wersji do wykorzystania w przyszłości, np. co działa, a co nie, jakie dziwactwa istnieją. Tak więc dla mnie pomocne byłoby posiadanie tagów w trakcie pobierania. Czy ktoś może wyjaśnić, jakie jest niebezpieczeństwo tego paradygmatu?

Dlaczego posiadanie znaczników prywatnych jest tak ważne? A jaka jest alternatywa? Czy powinienem po prostu utworzyć oddzielną gałąź za każdym razem, gdy chcę zgłosić konkretną wersję kodu?

+0

Należy pamiętać, że jest to tylko domyślny; tagi nie są wypychane, ponieważ domyślnie git push ** pasuje **. Podczas pobierania git ** autofolowalne znaczniki ** (tj. Pobierają je podczas pobierania zatwierdzeń, które wskazują). Zawsze możesz skonfigurować git, aby naciskał/pobierał wszystkie tagi. –

Odpowiedz

6

Kluczowym słowem jest "nie automatycznie zawarte." Możesz naciskać i ciągnąć tagi, musisz tylko określić je w swoich poleceniach push/pull. Wypróbuj git push --tags.

(Faktycznie, znaczniki są automatycznie wciągnięta w tych dniach, ale pcha muszą być jawne.)

+1

W rzeczywistości znaczniki są ** autofollowed ** przy pobieraniu domyślnie, co oznacza, że ​​git będzie pobierał znaczniki wskazujące na pobrane zatwierdzenia. –

+1

Tagi nie są automatycznie dołączane podczas wypychania, ponieważ domyślnie git wypycha ** pasujące ** refs (i z definicji nowe znaczniki nie byłyby obecne po stronie zdalnej, a zatem nie pasowałyby). –

6

Nie wiem, ale znaczniki są obecnie pobierane i to było domyślne przez dość długi czas.

Sformułowanie w cytowanych częściach wydaje mi się zagmatwane przy dzisiejszej terminologii git, więc odważę się twierdzić, że oświadczenie Linusa jest nieaktualne.

Powiązane problemy