Vous aurez "tronc", maintenant appelé "maître", vous aurez "branches" maintenant appelé "têtes" et vous aurez "balises", encore appelées "balises", mais elles ne seront pas des dossiers , elles seront " refs ", les libellés des révisions qui vivent dans un espace de noms distinct à l'intérieur du référentiel.
Subversion et Git ont différentes façons de créer des branches. Le modèle de subversion de base consiste à avoir une arborescence de répertoires avec une seule chronologie globale et si vous souhaitez créer une branche, vous copiez une sous-arborescence dans un autre répertoire.
D'un autre côté, Git a une arborescence de répertoires avec des révisions qui définissent chacune ses parents, mais chaque révision peut avoir plusieurs parents (une fusion) et plusieurs enfants (branches). Ainsi, au lieu d'avoir des répertoires pour les branches, vous obtenez des révisions créées indépendamment. Les "refs" ne sont que des noms associés à la dernière révision pour une "branche" donnée.
Cette différence est fondamentale pour le contrôle de version distribué. Git (et d'autres systèmes distribués) ne dispose d'aucune autorité centrale pour maintenir l'historique linéaire, de sorte que les révisions peuvent être créées indépendamment sur plusieurs référentiels sans se connaître et que le système doit les prendre en compte. Il s'avère que la généralisation rend la ramification et la fusion beaucoup plus faciles en général.
Notez que dans Git, les révisions ne concernent aucune branche. Ils sont juste et les branches les contiennent. Mais une fois que la branche est fusionnée, ou s'avère être une allée morte, vous pouvez simplement supprimer le "ref" qui la pointe et l'oublier complètement (si vous jetez les anciens essais, ils seront éventuellement récupérés avec git gc
). Cela vous aide à éviter d'être submergé par de vieilles expériences dont personne ne se souvient plus de quoi il s'agissait.