Estou usando um gerador de páginas estáticas (como Hugo, Jekyll, ...). Dentro do meu repositório há o código-fonte para o gerador de páginas estáticas, mas também o conteúdo que é usado ao gerar as páginas.
Quero poder construir as páginas com uma versão mais nova do conteúdo do que o código-fonte. Então, eu clono o repositório com o branch A, mas quero construí-lo com o conteúdo do branch B.
<root>/
do ramo A<root>/src
do ramo A<root>/README.md
do ramo A<root>/content
do ramo B
Um aspecto importante é que preciso do histórico de tudo que corresponde ao branch deles. Alguns arquivos <root>/content
existem no branch A e B, mas eu só quero o histórico do branch B.
Quando há um arquivo <root>/content/blog/post-1.md
e eu faço git log content/blog/post-1.md
o histórico deve ser retirado somente da ramificação B.
Tentei muitas coisas, mas não consegui ter o histórico correto presente.
git checkout origin/branch-b -- content
entãogit log content/blog/post-1.md
exibe o histórico presente no ramo A em vez do ramo B.git worktree add ../other content
ln -s ../other/content content
entãogit log content/blog/post-1.md
exibe o histórico presente no branch A em vez do branch B. O Git parece não seguir links simbólicos.git subtree add --prefix=content content content
então eu recebo o errofatal: prefix 'src/utils' already exists.
. Quando eu excluo essa pasta, eventualmente posso adicionar a subárvore, mas ela terá o histórico do branch A.git log --follow origin/branch-b ...
pode ser uma opção, mas com isso preciso alterar a integração git do gerador de páginas estáticas. Isso depende de um plugin de terceiros, que não suporta--follow
. Então estou procurando uma solução perfeita.
Talvez fazer o contrário seria uma solução? Clonar o branch B e sobrepor tudo do branch A, já que não dependo do histórico do branch A?