Ce que vous devez comprendre, venant de CVS, c'est que vous ne créez plus de répertoires lors de la configuration d'une branche.
Plus de "tag collant" (qui peut être appliqué à un seul fichier), ni de "tag de branche".
La branche et les balises sont deux objets différents dans Git, et ils s'appliquent toujours au tout repo.
Vous n'auriez plus (avec SVN cette fois) à structurer explicitement votre référentiel avec:
branches
myFirstBranch
myProject
mySubDirs
mySecondBranch
...
tags
myFirstTag
myProject
mySubDirs
mySecondTag
...
Cette structure vient du fait que CVS est un système de révision et non un système de version (voir Contrôle de code source vs Contrôle de révision? ).
Cela signifie que les branches sont émulées via des balises pour CVS, des copies de répertoires pour SVN.
Votre question est logique si vous avez l'habitude de retirer une balise et de commencer à y travailler .
Ce que vous ne devriez pas;)
Une balise est censée représenter un contenu immuable , utilisé uniquement pour y accéder avec la garantie d'obtenir le même contenu à chaque fois.
Dans Git, l'historique des révisions est une série de commits, formant un graphique.
Une branche est un chemin de ce graphique
x--x--x--x--x # one branch
\
--y----y # another branch
1.1
^
|
# a tag pointing to a commit
- Si vous extrayez une balise, vous devrez créer une branche pour commencer à travailler à partir de celle-ci.
- Si vous extrayez une branche, vous verrez directement le dernier commit ('HEAD') de cette branche.
Voir la réponse de Jakub Narębski pour toutes les détails techniques, mais franchement, à ce stade, vous n'avez pas (encore) tous les détails;)
Le point principal est: une balise étant un simple pointeur vers une validation, vous ne pourrez jamais modifier son contenu. Vous avez besoin d'une succursale.
Dans votre cas, chaque développeur travaillant sur une fonctionnalité spécifique:
- doivent créer leur propre branche dans leur référentiel respectif
- suivre les branches depuis les référentiels de leurs collègues (celui qui travaille sur la même fonctionnalité)
- tirer / pousser pour partager votre travail avec vos pairs.
Au lieu de suivre directement les branches de vos collègues, vous ne pouvez suivre que la branche d'un référentiel central "officiel" vers lequel chacun pousse son travail afin d'intégrer et de partager le travail de chacun pour cette fonctionnalité particulière.