Este não é realmente um problema git. Em vez disso, você precisa pensar sobre que tipo de arquivos de configuração você tem, quais opções eles fornecem para ler em arquivos adicionais e como eles divergem para sistemas diferentes.
Como exemplo, para o seu ~/.bashrc
, você pode ter um arquivo mestre que leia configurações específicas do host com uma linha source
.
DOTFILES=~/.dotfiles
source $DOTFILES/$HOSTNAME.bashrc
Com outros programas que não permitem esse tipo de operação em sua sintaxe de configuração, você pode precisar ter vários arquivos para seus diferentes sistemas no repositório e apenas vincular o arquivo apropriado.
ln -s ~/.dotfiles/i3blocks.$HOSTNAME ~/.i3blocks
Você pode até combinar isso com alguns scripts que constroem o arquivo a partir de blocos de construção ou com algum mecanismo de modelagem e que é acionado por um gancho git.