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!