Estamos movendo nosso (enorme) projeto para o git e estamos pensando em usar submódulos. Nosso plano é ter três cabeças diferentes no superprojeto: release, stable, latest. Os líderes do projeto cuidarão da liberação e dos ramos estáveis. Eles moverão os submódulos conforme necessário.
A questão é a cabeça "mais recente". Gostaríamos que o superprojeto "mais recente" acompanhasse as ramificações principais de todos os submódulos (automaticamente). E também seria ótimo se mostrasse a história de todos os commit no submódulo.
Eu olhei para o gitslave, mas não é bem o que queremos. Alguma sugestão?
git
git-submodules
git-track
l.thee.a
fonte
fonte
Respostas:
Atualização de março de 2013
O Git 1.8.2 adicionou a possibilidade de rastrear ramificações.
Se você já tinha um submódulo presente, agora deseja rastrear uma ramificação, consulte " como fazer com que um submódulo existente rastreie uma ramificação ".
Consulte também o tutorial de Vogella sobre submódulos para obter informações gerais sobre submódulos.
Nota:
Veja a
git submodule
página de manual :Consulte commit b928922727d6691a3bdc28160f93f25712c565f6 :
submodule add
: Se--branch
for fornecido, registre-o em.gitmodules
Resposta original (fevereiro de 2012):
Um submódulo é um único commit referenciado por um repositório pai.
Como é um repositório Git por si só, a "história de todos os commits" é acessível através de um
git log
dentro desse submódulo.Portanto, para um pai rastrear automaticamente a confirmação mais recente de uma ramificação de um sub-módulo, seria necessário:
O gitslave (que você já viu) parece ser o melhor ajuste, inclusive para a operação de confirmação .
Outras alternativas são detalhadas aqui .
fonte
git config -f .gitmodules submodule.<path>.branch <branch>
. Adicione tudo, confirme e empurre.--remote
tag se você não deseja obter cabeças desanexadas ao atualizar, se perguntando por que parece que seu código recém-extraído está por trás do master!git submodule update
comando, informando a qual commit (ou seja, o commit mais recente no master) para atualizar o submódulo, não fazendo com que o repositório pai atualize automaticamente quais commit é apontado pelo submódulo no momento do clone?