gitaarik/git_submodules. md (Português)

0 Comments

Why submódules?

no Git pode adicionar um submódulo a um repositório. Este é basicamente arepository embutido em seu repositório principal. Isto pode ser muito útil. Algumas vantagens de usar submódulos:

  • Você pode separar o código em repositórios diferentes.

    útil se tiver uma base de código com componentes Grandes, poderá fazer de um componente um submódulo. Desta forma, você ” terá um log git mais limpo(os commits são específicos de um determinado componente).,

  • pode adicionar o submódulo a múltiplos repositórios.

    é útil se tiver vários repositórios que partilham os mesmos. Com esta abordagem, poderá actualizar facilmente estes componentes em todos os repositórios que os adicionaram como submódulos.Isto é muito mais convienente do que copiar o código para as pastas.

Basics

quando adiciona um submódulo no Git, não adiciona o código do sub-módulo ao repositório principal, só adiciona informações sobre o sub-módulo que é adicionado ao repositório principal., Esta informaçãoescreve para onde aponta o submódulo. Desta forma, o código do”sub-módulo”não será automaticamente atualizado se o sub-módulo”srepository for atualizado. Isto é bom, porque o seu código pode não funcionar com o mais recente compromisso do submódulo, previne um comportamento inesperado.,

Adicionar um sub-módulo

Você pode adicionar um sub-módulo para um repositório como este:

Com a configuração padrão, este irá verificar o código deawesome_submodule.git repositório para o path_to_awesome_submodulediretório, e irá adicionar informações para o repositório principal aboutthis submódulo, que contém a cometer o submódulo de pontos,que será a atual confirmação de que o padrão de ramificação (geralmentemaster ramo) no momento em que este comando é executado.,

Após esta operação, Se fizer um id

verá dois ficheiros no id

lista: o id

ficheiro e a localização do submódulo. Quando você commit e empurra esses arquivos você commit / push o submódulo para a origem.se um novo submódulo é criado por uma pessoa, as outras pessoas na equipe precisam iniciar este submódulo. Primeiro você tem que obter a informação sobre o submódulo, isto é recuperado por um id

., Se houver novos submódulos, você vai vê-lo na saída degit pull. Então você terá que iniciá-los com:

Isto irá extrair todo o código do submódulo e colocá-lo na diretoria para a qual está configurado.

Se você clonou um repositório que faz uso de submódulos, você deve executar este comando para obter o código do submódulo. Isto não é feito automaticamente por git clone.

a carregar as actualizações no submódulo

o submódulo é apenas um repositório separado., Se você quiser fazer changesto, você deve fazer as alterações neste repositório e empurrá-las como um repositório Git regular (basta executar os comandos git no diretório do thesubmodule”). No entanto, você também deve deixar o mainrepository saber que você”atualizou o repositório do submodule”, e fazê-lo usar o mais recente commit do repositório do submodule. Porque se você fizer novos commits dentro de um submódulo, o repositório principal ainda apontará para o commit antigo.,

assim, se quiser ter estas alterações no seu repositório principal também, deverá dizer ao repositório principal para usar o Último envio do módulo. Como é que fazes isto?

Por isso, fez alterações no repositório do submódulo e Enviou-as no seu repositório. Agora, se você fazer uma git status no mainrepository, você vai ver que o submódulo está na lista Changes not staged for commit e tem o texto ” (modified content) por trás dele.Isto significa que o código do submódulo é verificado no commit diferente do que o repositório principal está apontando., Para tomar o ponto principal do repositório para este novo commit, basta adicionar esta alteração com git add e depois enviar e enviar.

mantendo os seus submódulos actualizados

Se alguém actualizou um submódulo, os outros membros da equipa devem actualizar o código dos seus submódulos. Isto não é feito automaticamente porgit pull, porque com git pull ele só recupera a informação de que o submódulo está apontando para outro comando, mas não”atualizar o código do submódulo”., Para actualizar o código dos seus submódulos, deverá executar:

o que acontece se não executar este comando?

Se não executar este comando, o código do seu submódulo é checado para um commit antigo. Quando você fizer git status você vai ver thesubmodule Changes not staged for commit lista com o texto ” (modified content) por trás dele. Isto não se deve ao facto de ter alterado o código do modelo, mas sim ao facto de o seu código ser verificado para um comando diferente. Então o Git vê isso como uma mudança, mas na verdade você não atualizou o código do submódulo., Então, se você está trabalhando com submódulos, não se esqueça de manter seus submódulos atualizados.

tornando mais fácil para todos

é por vezes irritante que se esqueça de iniciar e actualizar os seus modelos. Felizmente, existem alguns truques para torná-lo mais fácil:

Isto irá atualizar os submódulos, e se eles”não são iniciados ainda, irá iniciá-los.pode também ter submódulos dentro de submódulos., Neste caso você”llwant para atualização/iniciar o submódulos de forma recursiva:

Este é um muito de escrever, então você pode criar um alias:

Agora, sempre que você executar git update ele vai executar um git pull anda git submodule update --init --recursive, assim, a actualização de todos os codein seu projeto.


Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *