Deshacer git update-index --assume-unchanged <archivo>

Resuelto adardesign asked hace 11 años • 11 respuestas

He ejecutado el siguiente comando para ignorar la visualización/seguimiento de un directorio/archivo en particular:

git update-index --assume-unchanged <file>

¿Cómo puedo deshacer esto para que se <file>pueda ver/seguir nuevamente?

adardesign avatar Jun 19 '13 22:06 adardesign
Aceptado

Para deshacer/mostrar directorios/archivos que están configurados para asumir que no han cambiado, ejecute esto:

git update-index --no-assume-unchanged <file>

Para obtener una lista de directorios/archivos que se assume-unchangedejecutan en un shell Unix:

git ls-files -v | grep '^h'

o en un PowerShell:

git ls-files -v | Select-String -CaseSensitive '^h'
adardesign avatar Jun 19 '2013 15:06 adardesign

Si este es un comando que usa con frecuencia, es posible que desee considerar tener un alias para él también. Añade a tu global .gitconfig:

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged

Cómo configurar un alias (si aún no lo sabes):

git config --configLocation alias.aliasName 'command --options'

Ejemplo:

git config --global alias.hide 'update-index --assume-unchanged'
git config... etc

Después de guardar esto en su .gitconfig, puede ejecutar un comando más limpio.

git hide myfile.ext

o

git unhide myfile.ext

Esta documentación de git fue muy útil.

Según los comentarios, este también es un alias útil para descubrir qué archivos están ocultos actualmente:

[alias]
    hidden = ! git ls-files -v | grep '^h' | cut -c3-
adswebwork avatar Aug 19 '2014 15:08 adswebwork

Para sintetizar las excelentes respuestas originales de @adardesign, @adswebwork y @AnkitVishwakarma, y ​​los comentarios de @Bdoserror, @Retsam, @seanf y @torek, con enlaces de documentación adicionales y alias concisos...

Comandos básicos

Para restablecer un archivo que se supone que no ha cambiado a la normalidad:

git update-index --no-assume-unchanged <file>

Para enumerar todos los archivos que se supone que no han cambiado:

git ls-files -v | grep '^[a-z]' | cut -c3-

Para restablecer todos los archivos que se asumen sin cambios a la normalidad:

git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git update-index --no-assume-unchanged --

Nota: Este comando que se ha incluido en otra parte ya no parece restablecer todos los archivos que se asumen sin cambios (creo que solía hacerlo y anteriormente lo enumeraba como una solución):

git update-index --really-refresh

Atajos

Para que estas tareas comunes sean fáciles de ejecutar en git, agregue/actualice la siguiente sección de alias.gitconfig para su usuario (por ejemplo, ~/.gitconfigen un sistema *nix o macOS):

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged
    unhide-all = ! git ls-files -v | grep '^[a-z]' | cut -c3- | xargs git unhide --
    hidden = ! git ls-files -v | grep '^[a-z]' | cut -c3-
Will avatar May 16 '2018 16:05 Will