Você terá "trunk", agora chamado de "master", terá "branches", agora chamados de "heads", e terá "tags", ainda chamadas de "tags", mas não serão pastas , serão " refs ", rótulos para revisões que residem em um espaço para nome separado dentro do repositório.
O Subversion e o Git têm maneiras diferentes de fazer ramificações. O modelo básico de subversão é ter uma árvore de diretórios com uma linha do tempo global única e, se você quiser ramificar, copie uma subárvore em outro diretório.
Por outro lado, o Git tem uma árvore de diretórios com revisões que definem seus pais, mas cada revisão pode ter vários pais (uma mesclagem) e vários filhos (filiais). Portanto, em vez de ter diretórios para ramificações, você obtém revisões criadas independentemente. Os "refs" são apenas nomes associados à revisão mais recente de determinado "branch".
Essa diferença é fundamental para o controle de versão distribuído. O Git (e outros sistemas distribuídos) não tem nenhuma autoridade central para manter o histórico linear, portanto, as revisões podem ser criadas independentemente em vários repositórios sem conhecer um ao outro e o sistema precisa acomodá-los. Acontece que a generalização facilita muito a ramificação e a fusão.
Observe que, no Git, as revisões não estão em nenhum ramo. Eles são e galhos os contêm. Porém, uma vez que a ramificação seja mesclada ou se mostre um beco sem saída, você pode simplesmente excluir o "ref" que aponta para ela e esquecê-la completamente (se você descartar testes antigos, eles serão coletados com o lixo git gc
). Isso ajuda você a evitar ser inundado em experimentos antigos. Ninguém se lembra mais do que se tratava.