Aninhai repos git, isso causará um problema?

5

Uma história

  1. eu instalei o etckeeper
  2. Eu decidi acompanhar, por exemplo configuração do firewall shorewall como seu próprio repositório git. Acho que queria que fosse mais fácil olhar para mudanças específicas de configuração. Eu decidi que não precisava mais do etckeeper e o desinstalei. Então não há conflito, exceto ...
  3. Enquanto reconsiderava o etckeeper, percebi que na verdade não removi /etc/.git .

Antes que eu percebesse, eu teria pensado que git init se recusaria a criar um repositório git aninhado.

Se eu simplesmente retomasse o uso do etckeeper, eu ficaria preocupado que o git externo pudesse ficar inchado rastreando os diretórios .git internos. Alternativamente, ele pode ignorar todos os arquivos nos diretórios que são repositórios git separados.

Então, estou curioso, o que poderia dar errado?

    
por sourcejedi 15.11.2016 / 18:53

1 resposta

4

Meus primeiros testes com repositórios git aninhados não sofreram nenhum desses três problemas. Você não precisa adicionar .git em gitignore ; o conteúdo de todos os diretórios .git é ignorado automaticamente.

Os outros arquivos (por exemplo, no mesmo diretório que .git ) podem ser confirmados no repositório externo.

Então eu achei que o etckeeper poderia manter o rastreamento de todos os arquivos, enquanto os subdiretórios poderiam ter seu histórico gravado com mais cuidado em repositórios específicos. As duas histórias não sabem nada sobre o outro.

Eu só notei um problema mais tarde. Quando eu enviei um diretório que é um repositório git e contém commits em si, e eu ainda não havia comprometido arquivos daquele diretório no repositório externo, então ele aparece como um %código%. O conteúdo é representado apenas por um ID de confirmação. Subproject parece mostrar isso como gitk .

Isso soa como o git realmente quer reconhecê-los como Submodule . Eu particularmente não entendo git-submodule , só sei que ele tem uma reputação de ser um pouco confuso.

Eu também notei que o arquivo git-submodule está cheio de arquivos dos diretórios .etckeeper , mesmo se o git estiver usando submódulos.

    
por 15.11.2016 / 18:53

Tags