2012-10-30 18 views
13

Sto facendo il salto da SVN a Git (tuttavia, il mio rispetto per SVN sarà ancora valido) e ho avuto alcune domande per alcuni SVN alla terminologia Git. In SVN, molti repository sono installati in questo modo:SVN a Git Branch/Tag/Trunk

- trunk : The place where all of the main development occurs 
- tag : Storing versions of major releases or important milestones 
- branch : Where smaller "branch" development occurs as to not conflict with the main development occurring in the trunk, then is later merged into the trunk 

Quali sono i nomi di convenzione standard per branch/tag/trunk in Git?

Grazie per il vostro tempo.

risposta

12

Git non ti obbliga a utilizzare una struttura specifica per il tuo progetto. Tutte le informazioni importanti per git stesso verranno memorizzate nella directory .git nascosta. Per elencare o vederti rami e tag utilizzare i comandi git:

git branch 
git tag 
... 

per ottenere ulteriori informazioni utilizzare il comando git help o dare un'occhiata a questo libero book

+0

fantastico, grazie! –

8

non ci sono analoghi diretti davvero. SVN utilizza una struttura di directory per memorizzare le copie direttamente nel repository per consentire rami e tag. Quindi c'è un concetto nel creare una struttura per contenere queste copie nel repository.

Git d'altra parte mantiene questo come meta informazioni e tratta tutto come un'istantanea di un punto nel "tempo" come identificato da un hash:

Subversion segna alcuni posti di blocco nella storia attraverso le copie, la copia di solito è collocato in una directory denominata tag. I tag Git sono molto più potenti. Il tag Git può avere una descrizione arbitraria allegata (la prima riga è speciale come nel caso di commit), alcune persone memorizzano effettivamente gli annunci di rilascio completi nelle descrizioni dei tag. L'identità della persona che ha taggato è memorizzata (sempre seguendo le stesse regole dell'identità del committer). Puoi taggare altri oggetti piuttosto che commit (ma ciò è concettualmente piuttosto un'operazione di basso livello). E il tag può essere crittografato con PGP firmato per verificare l'identità (per la natura di Git del lavoro, tale firma conferma anche la validità della revisione associata, della sua storia e dell'albero).

Quindi in pratica non esiste una "struttura di repository"; c'è solo la struttura del progetto (es. quello che si potrebbe trovare in trunk, un ramo, o un tag nel repo SVN)

24
  • SVN tronco --- maestro Git (refs/teste/master)
  • rami SVN/* --- rami Git (Rif/responsabili/*)
  • SVN tag/* --- tag Git (Rif/tag/*)
+0

Molto completo! Grazie! –