Git branch para instâncias de um website?

7

Estou trabalhando em alguns sites, os dois sites precisam quase do mesmo código, exceto por algumas alterações em imagens e CSS ou configurações.

Acabei de ler o capítulo dos ramos do livro Pro Git e estou um pouco confuso, se um ramo não é a melhor solução para este problema, é um garfo?

Quer dizer, nós temos instâncias A e B do código, entre A e B, as diferenças são coisas como css color, urls, api keys, mas a maior parte do código é a mesma, então de que maneira posso lidar com isso, eu preciso de algo como código em A e, em seguida, 'patch' para obter B, mas não sei como fazer uma mesclagem que não substitua as imagens ...

De qualquer forma, se é uma ramificação ou uma bifurcação, como posso fazer uma mesclagem para novos recursos em A sem perder as alterações em B?

    
por diegueus9 20.05.2011 / 00:43

2 respostas

1

Isso é um pouco complicado, e temo que não haja uma resposta "certa" única. Eu concordo que a manutenção de ramificações separadas para A e B não é o uso apropriado de git.

Sua primeira opção é simplesmente garfo um do outro. A desvantagem, é claro, é que agora você tem que manter duas bases de código separadas. Feio.

A segunda opção é separar apenas as diferenças (por exemplo, as imagens e diretórios css). Isso deixaria você com 3 repositórios git: o código (apenas uma base de código para manter, hooray!), As imagens / css / etc. para A e o mesmo para B. A desvantagem dessa abordagem é que ela complica a implantação, especialmente se você precisar implantar alterações de código e de estilo simultaneamente.

Como alternativa, você poderia certamente usar o git para manter um único repositório com A e B como ramificações separadas. Não, não é ideal, mas estritamente falando, funcionaria. No entanto, é indiscutivelmente uma solução mais complicada para o problema do que a primeira sugestão (forking A e B inteiramente).

Ninguém a não ser você (e sua equipe) pode dizer qual é a abordagem "certa" para sua situação. Desejo-lhe boa sorte!

    
por 20.05.2011 / 01:07
2

Por que não criar uma ramificação "modelo" que tenha o material em comum e mesclar isso nas ramificações por website? Nenhuma das coisas customizadas deve aparecer no branch de templates, e idealmente o material customizado seria isolado para arquivos especiais, embora isso não seja uma necessidade estrita. Se você puder isolar no nível do arquivo, defina os arquivos personalizados na ramificação do modelo para segurança.

Quando você fizer uma alteração, altere-a no modelo e mescle-a para cada ramificação. Cada site deve ter a mudança aplicada ao modelo e manter seu trabalho personalizado.

    
por 20.05.2011 / 04:52