Я делаю нечто подобное и использую разные ветки для разных настроек. Таким образом, когда вы находитесь на определенной машине, вы можете сделать git checkout config-laptop
или git checkout config-htpc
, и т.д., чтобы взять нужные вам файлы.
Также, если вы внесли изменения в файлы в одной ветке, которые вы хотите распространить на другие, вы можете объединить их в разных ветках. Использование такого инструмента, как GitKraken, даже позволяет объединять только нужные вам секции (hunks) или даже отдельные строки.