2010-10-25 33 views
7

Eventuali duplicati:
What is the difference between a tag and a branch in git?Qual è la differenza tra tag e branch con git?

Quello che mi piacerebbe fare è creare posti di blocco per le diverse versioni del mio codice. Quindi, una volta fatto un mucchio di commit, voglio dire "Ok, a questo punto del codice, questa è la versione 0.1 completata". E poi posso fare un mucchio di altri commit e farlo di nuovo e dire "Ok, questo punto è completato".

So come fare un ramo e un tag ... Io proprio non capisco la differenza, e quale sarà fare quello che voglio;)

Grazie

+4

Duplicato di [Qual è la differenza tra un tag e un ramo in git?] (Http://stackoverflow.com/questions/1457103/what-is-the-difference-obetween-a-tag-and-a -branch-in-git) Perché non fare una ricerca prima di chiedere? –

risposta

5

Un tag rappresenta una versione di un ramo specifico in un momento. Un ramo rappresenta un thread separato di sviluppo che può essere eseguito in concomitanza con altri sforzi di sviluppo sulla stessa base di codice.

FONTE: This duplicate question.

Quello che vuoi è probabilmente un TAG.

+0

Grazie, funziona bene. È confuso perché quando vado a github, vedo molti rami con i numeri di versione ... quindi mi stavo confondendo. – egervari

5

Sia i rami che i tag sono essenzialmente dei puntatori ai commit. La grande differenza è che il commit di un ramo punta alle modifiche man mano che aggiungi nuovi commit, e un tag viene congelato su un particolare commit per contrassegnare un punto nel tempo con un certo significato. Da uno dei miei preferiti risorse Git, Pro Git:

Come la maggior parte VCS, Git ha la capacità di punti specifici tag nella storia come essere importante. Generalmente, le persone usano questa funzionalità per specificare la versione punti (v1.0, e così via) . In questa sezione , imparerai come elencare i tag disponibili , come creare nuovi tag e quali sono i diversi tipi di tag .

A branch in Git is simply a lightweight movable pointer to one of these commits. 
-2

tag sono un elemento fondamentale in git; i rami non lo sono Git esegue controlli per assicurarsi che i tag rimangano costanti, non cambino mai, una volta creati puntando su un commit. Un ramo d'altra parte è un semplice riferimento o puntatore a un commit e può essere aggiornato per puntare liberamente a un commit diverso.

+2

"I tag sono un elemento fondamentale in git, i rami no". Non c'è alcun significato di "fondamentale" per il quale tale affermazione sia corretta. In particolare, è impossibile fare un lavoro utile in git senza rami, ma ci sono molti progetti git semplici là fuori senza tag. –

0

Supponiamo di avere - Super Awesome Product v1.0 stabile e commutato in un repository git.

Si fanno bug fix e cambiamenti nel ramo che è v1.0 e li tag con roba come:

  • questo risolve elemento di lavoro 1341 - bug ...

  • questa versione corregge l'articolo 234324 - bug ...

  • v1.0 finale

Quanto sopra sono tutti i tag che rappresentano lo stato del codice (etichetta) quando il commit è stato fatto. Quindi, quando crei la v1.5 e arriva un bug per la v 1.0, prendi il tag v1.0 e testalo.

ORA! Decidi di modificare l'Accesso ai dati sottostanti del prodotto Super Awesome. cosa fai? Si diramano v1.0 e si crea un nuovo ramo chiamato Super Awesome Product NUOVO ramo DAL.

I tag sono per istantanee di commit giornalieri o giornalieri. I rami sono per cambiamenti più grandi.

+1

Guardare attraverso i progetti casuali su github sembra mostrare il contrario - che gli sviluppatori usano le filiali su base giornaliera e usano solo i tag per indicare rilasci o altri punti speciali. Non ho un flusso di lavoro particolarmente inusuale, ma creo nuovi rami git ogni giorno, eppure sono passati mesi da quando ho creato un nuovo tag. –

Problemi correlati