Ignorar ciertos files en el directory incluso cuando se agrega un directory con -f

Acabo de poner mis files de puntos en un repository de la manera sugerida por Eli Barzilay aquí :

Así que finalmente encontré una solución que toma lo mejor de ambas: coloque el repository en un subdirectory, y en lugar de enlaces simbólicos, agregue una opción de configuration para que "core.worktree" sea su directory de inicio. Ahora cuando estás en el directory de inicio no estás en un repository git (así que el primer problema se ha ido), y no necesitas tratar con enlaces simbólicos frágiles como en el segundo caso. Aún tiene la menor molestia de excluir routes que no quiere versionar (por ejemplo, el "*" en el truco ".git / info / exclude"), pero eso no es nuevo.

Mi .git / info / exclude se ve así:

* .*.swp *~ \#*# .DS_Store 

El * en la primera línea ignora con éxito todos los files, así que agrego cosas explícitamente con git add -f . Sin embargo, esto tiene el efecto secundario de que los files que deseo ignorar se deslicen.

¿Hay alguna manera de decirle a git que realmente ignore ciertos files, aunque use add -f ?

En este momento no hay una manera fácil de hacer esto, porque al poner * en .git/info/exclude estás esencialmente "cegando" a todos los files que realmente quieres que sean ignorados. Esa es una gran desventaja del enfoque de tree de trabajo independiente para la administración de files en punto mediante git, y esta es una de las razones por las que personalmente rechacé este enfoque. En cambio, escribí un plugin para mr que automatiza la administración de la granja de enlace simbólico a través de GNU Stow .

Sin embargo, si todavía desea seguir con el enfoque de tree de trabajo independiente, definitivamente debe mirar vcsh lugar de redevise las ruedas. Actualmente estoy trabajando para hacer que el mecanismo de ignorar de git sea más progtwigble , y es posible que este trabajo pueda ser consumido por herramientas como vcsh en el futuro para al less resolver parcialmente este problema. (Conozco vcsh autor de vcsh y le he sugerido esta idea en el IRC).

Finalmente, recomendaría pasar el rato con los vcs-home para comprender mejor todas las opciones.