Directorios de sincronización que contienen repositorio git con unísono

Quiero sincronizar un directorio que contiene un repositorio git de mis archivos de puntos en dos máquinas. Ambas máquinas harán cambios a los archivos en el repositorio. Normalmente uso unison para sincronizar directorios pero en este caso los archivos en.git El directorio diverge incluso cuando el contenido del directorio es aparentemente el mismo. Unison levanta las manos y renuncia cuando ve esto.

$ 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

Una sincronización byte por byte aquí no funciona porque incluso con los mismos archivos y estado git, los archivos git internos pueden ser diferentes. ¿Cómo puedo sincronizar estos directorios? Después de la sincronización, todos los archivos que no sean git y el estado git deben ser idénticos en las dos máquinas. Por estado de git me refiero a los historiales de compromiso y puesta en escena, pero no necesariamente a todos los bytes de cada archivo git interno (por ejemplo, .gitignore, .git). No sé lo suficiente sobre git para entrar en más detalles sobre lo que quiero decir con eso, pero si eso no está claro, solo comente.

No quiero hacer ningún git commit como parte de la sincronización. Veo el control de versiones y la sincronización como dos problemas separados aquí.

Poner las palabras git y sync en google da resultados que describen cómo clonar un repositorio. Para ser claros, ninguno de los usos de "sincronización" anteriores se refieren a acciones de git.

Respuestas a la pregunta(2)

Su respuesta a la pregunta