O que é o Git Subtree?
O Git Subtree é uma ferramenta do Git que permite a incorporação de um repositório dentro de outro, de forma que os commits do repositório incorporado sejam registrados no repositório principal. Ele é útil em casos em que você deseja gerenciar projetos relacionados em um único repositório principal, sem a necessidade de mesclar diretórios. Ele também é usado para manter bibliotecas externas em seus próprios repositórios, mas ainda assim incluí-los em seus projetos principais.
Como instalar o Git Subtree?
O Git Subtree é uma extensão do Git e está disponível como um script bash. Para instalar o Git Subtree, você pode executar o seguinte comando no seu terminal:
curl -s https://raw.githubusercontent.com/git/git/master/contrib/subtree/git-subtree.sh > git-subtree.sh && chmod +x git-subtree.sh && sudo mv git-subtree.sh /usr/local/bin/git-subtree
Depois que o Git Subtree estiver instalado, você poderá usar seu conteúdo como um comando regular do Git, como git subtree… (comandos).
Como adicionar um repositório usando o Git Subtree?
Para adicionar um repositório à árvore do Git Subtree, use o seguinte comando:
git subtree add --prefix
O parâmetro –prefix especifica o nome do diretório que armazenará o conteúdo do repositório incorporado. A URL do repositório e a branch serão a URL do seu repositório e a branch que você deseja incorporar, respectivamente. Ao executar este comando, você criará um novo diretório com o nome que você especificou e o Git Subtree fará o checkout dos arquivos do repositório incorporado.
Como contribuir para um repositório usando o Git Subtree?
Para contribuir para um repositório usando o Git Subtree, você precisará ter uma cópia local do repositório incorporado. Quando estiver pronto para enviar suas alterações, faça o seguinte:
- Commit suas alterações localmente.
- Faça o push das alterações para o repositório incorporado.
- Volte para o diretório do repositório principal e execute o seguinte comando:
git subtree push --prefix=
Este comando enviará todas as suas alterações para o repositório incorporado. As alterações serão registradas como um commit autônomo no repositório incorporado.
Como atualizar um repositório usando o Git Subtree?
Para atualizar o conteúdo do repositório incorporado usando o Git Subtree, use o seguinte comando:
git subtree pull --prefix=
Este comando fará o fetch das atualizações do repositório incorporado e as mesclará com as alterações locais. Se houver conflitos, você precisará resolvê-los manualmente.
Como remover um repositório usando o Git Subtree?
Para remover um repositório usando o Git Subtree, use o seguinte comando:
git subtree remove --prefix=
Isso removerá o diretório que contém o conteúdo do repositório incorporado e removerá todas as referências a ele. No entanto, não removerá o repositório incorporado. Se você quiser remover completamente o repositório incorporado, precisará excluí-lo manualmente.
Como listar os diretórios incorporados usando o Git Subtree?
Para listar os diretórios incorporados em um repositório com o Git Subtree, execute o seguinte comando:
git subtree list --all
Este comando listará todos os diretórios incorporados e as informações sobre eles, incluindo o commit SHA e a branch.
Como dividir um diretório usando o Git Subtree?
Às vezes, você deseja dividir um diretório em um repositório próprio. Para fazer isso usando o Git Subtree, execute o seguinte comando:
git subtree split --prefix= -b
Este comando dividirá o diretório especificado em um novo branch com o nome que você especificou. Você pode, então, fazer um push deste branch para um novo repositório ou incorporá-lo em outro repositório como uma subárvore.
Como mesclar diretórios usando o Git Subtree?
Para mesclar diretórios usando o Git Subtree, use o seguinte comando:
git subtree merge --prefix=
Este comando mesclará o diretório especificado do branch especificado (geralmente um repositório incorporado) com o seu diretório de trabalho atual.
Quais são as vantagens do Git Subtree?
O Git Subtree oferece a flexibilidade de gerenciar projetos relacionados sem a necessidade de mesclar diretórios ou comprometer todos os seus projetos em um único repositório. Ele também oferece uma maneira conveniente de manter bibliotecas externas em seus próprios repositórios, mas ainda assim incluí-las em seus projetos principais. Além disso, ao usar o Git Subtree, commits autônomos são criados para o repositório incorporado, o que torna o histórico de commits mais claro e fácil de entender.
Quais são as desvantagens do Git Subtree?
O Git Subtree requer trabalho extra para configurar e gerenciar adequadamente, o que pode levar algum tempo para se habituar. Além disso, ao incorporar um repositório em outro, os commits são registrados no repositório principal, tornando-o menos independente do que um repositório regular. Isso pode tornar mais difícil criar bifurcações e acompanhar as alterações usando o Git.