¿Cómo tratar un repository local de files dotfile?

Como muchos otros, quiero tener un repository de git con mis files de configuration y también cargar una copy de security de él en un sitio de alojamiento. Mi pregunta es cómo tratar los files duales del repository local.

Digamos que tengo mi zshrc / bashrc en el repository de files duales. Puedo poner la línea 'source / path / to / local / repo / zshrc' en mi file ~ / .zshrc y todo está bien. Lo mismo con vimrc.

Pero, ¿qué pasa con esos files dot que no son compatibles con dicho command? ¿Debo tener el mismo contenido en ~ / .conffile y / pathtolocalrepo / conffile y cuando hago un cambio en uno de ellos actualizo el otro file? ¿O hay una manera más inteligente?

¿Cuál es la práctica común?

¿También dónde se encuentra normalmente este repository local (en Linux)? No creo que la carpeta de inicio sea el lugar correcto para ponerla (los files de configuration también deberían estar disponibles para otros usuarios), pero ¿cuál es el lugar que mejor se adapta?

Gracias por adelantado.

Probablemente deberías usar enlaces simbólicos.

ln -s /path/to/repo/.zshrc ~/.zshrc 

Eso significa que cuando intentes acceder ~ / .zshrc, esto searchá el file /path/to/repo/.zshrc

Para get más información sobre enlaces simbólicos, mira esto: Enlaces simbólicos

Tenga en count que puede crear perfectamente un enlace "difícil" (sin la opción -s), solo que con los enlaces duros no puede vincular directorys ni enlazar mediante filesystems (si / home y / ruta / a / repos no están en el mismo disco / partición)

¿También dónde se encuentra normalmente este repository local (en Linux)? No creo que la carpeta de inicio sea el lugar correcto para ponerla (los files de configuration también deberían estar disponibles para otros usuarios), pero ¿qué lugar es el más adecuado?

Normalmente coloco todos mis repositorys git en la carpeta ~ / git, pero esta es realmente una elección personal.

Hago algo similar, aunque por razones históricas uso CVS en lugar de Git.

$HOME/.* todos mis files $HOME/.* (y $HOME/bin/* ) en un repository de CVS. A continuación, utilizo manualmente las secuencias de commands update-home y update-bin que escribí para copyr los files en $HOME o $HOME/bin , respectivamente. Es un poco desperdiciado de espacio (supongo que podría usar enlaces simbólicos), pero no tan mal, y al copyr en lugar de enlazar, puedo experimentar con files en el repository sin afectar mi directory personal.

El command update-home , entre otras cosas, hace copys de security de los files que ya existen, para que no rompa el file .bashrc que se creó cuando se configuró mi count. (Y update-bin edita #! Líneas según sea necesario, por ejemplo, si quiero utilizar un ejecutable de Perl que no sea /usr/bin/perl )

(Mis scripts de update-home y update-bin no están diseñados para ser utilizados por otros, están llenos de nombres integrados que solo se aplican a mí. Copiar los files manualmente también podría funcionar).

Una práctica común es hacer una copy de security de tus files dot en Github. Hay mucho trabajo hecho para esa práctica.

La idea es clonar ese repository para cada computadora nueva que quieras usar.

Puede echar un vistazo a mi repo personal para ver cómo lo implementé. En mi caso, utilicé un script de Perl llamado dfm para manejar esos enlaces simbólicos