Sincronize diretórios contendo repositório git com uníssono

Quero sincronizar um diretório que contém um repositório git dos meus arquivos de ponto em duas máquinas. Ambas as máquinas farão alterações nos arquivos no repositório. Normalmente, eu uso o uníssono para sincronizar diretórios, mas, neste caso, os arquivos no diretório.git O diretório diverge mesmo quando o conteúdo do diretório é ostensivamente o mesmo. Unison levanta as mãos e desiste quando vê isso.

$ unison dotfiles
changed  <-?-> changed    .git/FETCH_HEAD
changed  <-?-> changed    .git/ORIG_HEAD
changed  <-?-> changed    .git/index
changed  <-?-> changed    .git/logs/HEAD
changed  <-?-> changed    .git/logs/refs/heads/master
changed  <-?-> changed    .git/logs/refs/remotes/origin/master

Uma sincronização de byte a byte aqui não funciona porque mesmo com os mesmos arquivos e estado git, os arquivos git internos podem ser diferentes. Como posso sincronizar esses diretórios? Após a sincronização, todos os arquivos não-git e o estado git devem ser idênticos nas duas máquinas. Por estado git, refiro-me ao histórico e preparação do commit, mas não necessariamente a todos os bytes de cada arquivo git interno (por exemplo, gitignore, .git). Eu não sei o suficiente sobre o git para entrar em mais detalhes sobre o que quero dizer com isso, mas se isso não estiver claro, basta comentar.

Eu não quero fazer nenhum commit do git como parte da sincronização. Vejo o controle de versão e a sincronização como dois problemas separados aqui.

Colocar as palavras git e sync no google fornece resultados que descrevem como clonar um repo. Só para esclarecer, nenhum dos usos de "sincronização" acima se refere a ações git.

questionAnswers(2)

yourAnswerToTheQuestion