Dejar de ver cambios en archivos rastreados en git
Programación
Trabajando con git en equipos de trabajo, a menudo nos vemos en la necesidad de realizar un cambio a un archivo que ya esta siendo visto por git, pero no queremos que ese cambio sea registrado, ya sea porque es un cambio de configuración local o por alguna otra razón en específico.
Para este caso podemos usar el comando de git update-index que proporciona un control estricto sobre como se rastrea, registran o se ignoran los archivos en el staging o index. Vamos a ver algunos usos puntuales del comando.
Asume Unchanged
Dejar de ver cambios en local; Si a un archivo le agregas esta opción git dejara de ver esos cambios que realices tu localmente...
git update-index --assume-unchanged
Dado que con git status no veremos estos archivos, podemos encontrarlos con git ls-file, para los archivos assume-unchanged...
git ls-files -v | grep "^h"
Pero ojo... Deja de ver cambios en local, si al hacer un pull o un merge ese archivo trae un cambio, git sobre escribirá tus cambio dando prioridad siempre a que debes tener tu código al día con el remoto, para prevenir esto tenemos el siguiente comando...
Skip Worktree
Como mencionamos anteriormente, aplica la misma funcionalidad que la opción anterior, pero dando prioridad a los cambios locales, para que no sean sobre escritos por un pull o por un merge ( siempre y cuando no haya conflictos).
git update-index --skip-worktree
Para ver los archivos que ignoramos con skip-worktree
git ls-files -v | grep "^S"
Para el caso en que se quiera revertir lo anteriormente mencionado, aplicaríamos lo siguiente para cada caso...
git update-index --no-assume-unchanged
git update-index --no-skip-worktree
Nota: el comando git update-index tiene muchas otras aplicaciones, como por ejemplo cambiar permisos de archivos, agregar archivos al índex, manejar de manera mas optima repositorios muy grandes pero por el momento solo vimos dos casos puntuales para el comando.