undo git update-index assume assume-unchanged


La forma en que git ignora la observación/seguimiento de un dir/archivo en particular. solo tienes que ejecutar esto:

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

Ahora, ¿cómo se deshace para que sean observados de nuevo? (vamos a llamarlo un-asumir)

Author: adardesign, 2013-06-19

8 answers

Para obtener los archivos/del directorio undo/show que están configurados en assume-unchanged, ejecute :

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

Para obtener una lista de archivos/dir que son assume-unchanged ejecute esto :

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

 461
Author: adardesign,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-07-07 17:31:11

Si este es un comando que usa a menudo, es posible que desee considerar tener un alias para él también. Añadir a su .gitconfig global:

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

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

git hide myfile.ext

O

git unhide myfile.ext

Este recurso fue muy útil

 70
Author: adswebwork,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-23 10:13:52

La función Git update-index tiene varias opciones que puedes encontrar escribiendo de la siguiente manera:

git update-index --help

Aquí encontrará varias opciones - cómo manejar con la función update-index.

[si no conoce el nombre del archivo]

git update-index --really-refresh 

[si conoce el nombre del archivo]

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

Revertirá todos los archivos que se han agregado en la lista de ignorados.

git update-index --assume-unchanged <file>
 34
Author: Ankit Vishwakarma,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-06-17 10:34:22

Asumo (jeh) que querías decir --assume-unchanged, ya que no veo ninguna opción --assume-changed. El inverso de --assume-unchanged es --no-assume-unchanged.

 30
Author: hobbs,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-19 15:58:25

Si desea deshacer todos los archivos que se aplicaron asumen sin cambios con cualquier estado, no solo en caché (git los marca por carácter en minúsculas), puede usar el siguiente comando:

git ls-files -v | grep '^[a-z]' | cut -c 3- | tr '\012' '\000' | xargs -0 git update-index --no-assume-unchanged
  1. git ls-files -v imprimirá todos los archivos con su estado
  2. grep '^[a-z]' filtrará los archivos y seleccionará solo asumir sin cambios
  3. cut -c 3- eliminará el estado y dejará solo rutas, cortando desde el carácter 3-er hasta el final
  4. tr '\012' '\000' reemplazará el carácter de final de línea (\012) a cero carácter (\000)
  5. xargs -0 git update-index --no-assume-unchanged pasará todas las rutas separadas por cero carácter a git update-index --no-assume-unchanged para deshacer
 14
Author: C0DEF52,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-01 07:34:34

Agregando a la respuesta de @adardesign, si desea restablecer todos los archivos que se han agregado a la lista assume-unchanged a no-assume-unchanged de una sola vez, puede hacer lo siguiente:

git ls-files -v | grep '^h' | sed 's/^..//' | sed 's/\ /\\ /g' | xargs -I FILE git update-index --no-assume-unchanged FILE || true

Esto simplemente eliminará los dos caracteres de salida de grep, es decir, "h ", luego escapará cualquier espacio que pueda estar presente en los nombres de los archivos, y finalmente || true evitará que el comando termine prematuramente en caso de que algunos archivos en el bucle tengan errores.

 11
Author: sagunms,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-02-13 08:59:44

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

Comandos Básicos

A restablecer un archivo que es asumir-sin cambios volver a la normalidad:

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

A listar todos los archivos que se asumen sin cambios:

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

To reset all assume-unchanged files back to normal:

git update-index --really-refresh

Atajos

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

[alias]
    hide = update-index --assume-unchanged
    unhide = update-index --no-assume-unchanged
    unhide-all = update-index --really-refresh
    hidden = ls-files -v

Para facilitar la ejecución de la lista de todos los archivos que se asumen sin cambios en un shell que soporta alias (como bash), cree un alias como:

alias git-hidden="git hidden | grep '^[a-z]' | cut -c3-"

Para shells sin alias, un script podría hacer el truco.

 7
Author: Will Cain,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-16 16:20:28

Si estás usando Extensiones de Git , sigue los siguientes pasos:

  1. Vaya a la ventana de confirmación.
  2. Haga clic en el menú desplegable llamado Cambios en el directorio de trabajo.
  3. Seleccione Mostrar assummed-archivos sin cambios opción.
  4. Haga clic derecho en el archivo que desea eliminar.
  5. Select Do no assumme unchanged.

Has terminado.

 2
Author: Shivang Gupta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-11-22 05:06:40