git - microsoft - visual studio team explorer 2018



Come fare "git push" include i tag all'interno di un ramo? (1)

Quando recuperi un singolo ramo, git fetch include tutti i tag che puntano al ramo:

Quando refspec memorizza il risultato recuperato nei rami di tracciamento remoto, i tag che puntano a questi rami vengono automaticamente seguiti. Questo viene fatto recuperando prima dal remoto usando i dati s, e se il repository ha oggetti puntati da tag remoti che non ha ancora, allora recupera quei tag mancanti. Se l'altra estremità ha tag che puntano ai rami a cui non sei interessato, non li otterrai.

C'è un modo per far sì che git push comporti allo stesso modo? La pagina man dice come non premere nessun tag (il default), tutti i tag ( --tags ) o quelli che si chiamano sulla riga di comando. Non dà il modo di spingere tutti quelli che puntano nel ramo.


Puoi provare, con git1.8.3+ (maggio 2013):

git push --follow-tags

La nuova --follow-tags " --follow-tags " dice a " git push " di spingere i tag annotati rilevanti quando si estrae le filiali.

Questo non spingerà tutti i tag, ma solo quelli accessibili dal / i capo / i che stai spingendo.

Come menzionato in " Spingi un tag su un repository remoto usando Git? ", Questo riguarda solo i tag annotati , non i tag leggeri.

git tag 1.0 (lightweight) non sarebbe stato spinto con --follow-tags , lo farebbe con git push --tags .

Con Git 2.4.1+ (Q2 2015), questa opzione può essere impostata come predefinita.

Vedi commit a8bc269 di Dave Olszewski ( cxreg ) :

semplificare l'aggiunta di nuovi bit di configurazione e quindi aggiungere la configurazione push.followTags che --follow-tags opzione --follow-tags per impostazione predefinita.

La documentazione includerà:

push.followTags::

Se impostato su true abilita l' --follow-tags ' --follow-tags ' di default. Puoi sovrascrivere questa configurazione al momento della richiesta specificando ' --no-follow-tags '

git config --global push.followTags true questa impostazione globalmente, è possibile eseguire git config --global push.followTags true . Può anche essere specificato su base per repository.





git