Como transformar um diretório em um repositório Git em um submódulo

Como transformar um diretório em um repositório Git em um submódulo

Os submódulos Git são como repositórios dentro de repositórios, que permitem incluir bibliotecas de código externas ou dependências em seu projeto, tudo sem vincular o controle de versão do módulo ao próprio projeto. Isso mantém os módulos separados e fáceis de atualizar, e é fácil converter um diretório em um novo submódulo.

O que é um submódulo no Git?

Um submódulo é um repositório Git incorporado a outro repositório Git. Isso permite que você inclua o código de outro projeto como uma dependência, mantendo seu próprio controle de versão.

Quando você clona o repositório pai, ele também clona automaticamente o repositório do submódulo. Isso significa que o código do submódulo e o histórico do Git são mantidos separados do controle de versão principal e podem ser atualizados para vários repositórios que consomem a biblioteca.

Uma alternativa aos submódulos é publicar suas bibliotecas como pacotes para gerenciadores de pacotes como NPM, Maven ou NuGet. No entanto, isso não funciona para todos os tipos de projetos e, se você estiver trabalhando com código privado, precisará configurar um registro de pacote privado, o que pode ser mais complicado do que simplesmente incorporar o código-fonte da biblioteca como um submódulo .

Como transformar um diretório em um submódulo

A primeira etapa é criar um novo repositório para o submódulo. Isso geralmente ocorre em um serviço de hospedagem Git como o GitHub , embora você possa criar um repositório local em seu computador.

Em seguida, você deseja obter uma nova cópia do seu repositório principal para criar o repositório do submódulo.

git clone git@github.com:username/repository.git submodule-repo

cd submodule-repo git filter-branch --subdirectory-filter submoduledirectory -- --all

Você desejará alterar a URL remota deste diretório de módulo para seu novo repositório de submódulo, que normalmente é denominado “origem”.

git remote set-url origin https://github.com/new-repository.git

Em seguida, você pode enviar o histórico como faria normalmente.

git push -u origin main

Adicionando um novo submódulo

De volta ao projeto principal, você desejará adicionar o submódulo.

Primeiro, você precisa parar de rastrear o diretório que deseja transformar em um submódulo do repositório pai. Ele ainda estará lá no histórico de versões do Git, e você acabou de adicioná-lo ao novo repositório de módulos de qualquer maneira.

rm -rf directory_name

Em seguida, você pode adicionar a URL remota para o repositório do submódulo que você criou no Github, usando o git submodule addcomando:

git submodule add git@github.com:username/repository.git directory_name

Quando você executa esse comando, o Git cria um novo diretório de submódulo no repositório pai e clona o repositório de submódulo nesse diretório. Ele também começará a rastrear a pasta do módulo novamente.

Para atualizar o submódulo, você pode usar o git submodule updatecomando:

git submodule update --remote submodule_name

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *