para ver los archivos "asumir sin cambios" y "omitir el árbol de trabajo" marcados con una letra especial. Los archivos "skip-worktree" están marcados con S.
Editar : como mencionó @amacleod , hacer un alias para enumerar todos los archivos ocultos es un buen truco para no tener que recordarlo. Yo uso alias hidden="git ls-files -v | grep '^S'"en mi .bash_profile. ¡Funciona muy bien!
Ordenado. Puedo usar git ls-files -v | grep '^S'para enumerar solo los archivos que he "ocultado" con skip-worktree. Esperaba hacer un alias "oculto" para ese comando, pero poner una redirección de tubería en el alias no parecía funcionar.
amacleod
55
@amacleod usa a !. Como este [alias] ignored = !git ls-files -v | grep "^S"Probado, funciona.
Steven Lu
@amacleod ¿No crees que podrías sugerir un comando alternativo para Windows?
Steve Chambers
1
@SteveChambers, corto de instalación grep, no lo sé. Depende de tu caparazón, supongo. Git Bash viene con grep, creo.
amacleod
1
Brillante, gracias @amacleod, simplemente no estaba en mi camino. Lo único que necesitaba cambiar para que esto funcionara en Windows era el estilo de cotización - 'no funcionó pero "sí, es decirgit ls-files -v | grep "^S"
Steve Chambers
17
Si desea deshacer todos los archivos que se aplicaron, omita el árbol de trabajo, puede usar el siguiente comando:
git ls-files -v imprimirá todos los archivos con su estado
grep -i ^S filtrará los archivos y seleccionará solo omitir worktree (S) u omitir worktree y asumir que no ha cambiado (s), -i significa ignorar mayúsculas y minúsculas
cut -c 3- eliminará el estado y dejará solo rutas, cortando desde el tercer carácter hasta el final
tr '\012' '\000' reemplazará el carácter de final de línea (\ 012) a cero (\ 000)
xargs -0 git update-index --no-skip-worktreepasará todos los caminos separados por cero caracteres git update-index --no-skip-worktreea deshacer
Haga clic derecho en la carpeta o en el archivo específico, luego elija TortoiseGit > Check for modifications
Solo consultar Show ignore local changes flagged files. Debería ver el archivo que ignoró (o todos los archivos que ignoró, si hizo clic derecho en la carpeta)
Haga clic derecho en el archivo y elija Unflag as skip-worktree and assume-unchanged
Esta respuesta está dirigida a personas menos técnicas que usan Windows.
Si no recuerda / sabe en qué archivos hizo clic en "skip-worktree", utilice:
git ls-files -v //This will list all files, you are looking for the ones with an S at the beginning of the line.
git ls-files -v | grep "S " //Use this to show only the lines of interest. Those are the files that have "skip-worktree".
Para solucionar su problema:
Puede ir a los archivos -> hacer clic con el botón derecho -> restaurar a una versión anterior -> hacer clic en la pestaña "git" en la parte superior -> desmarcar la casilla de verificación "skip-worktree" -> hacer clic en "Aplicar" en la parte inferior.
Si los archivos son demasiados para arreglarlos a mano, entonces deberá consultar las otras respuestas.
Respuestas:
¡Ajá! Simplemente quiero:
fuente
De acuerdo con http://www.kernel.org/pub/software/scm/git/docs/git-update-index.html , use
git ls-files -v
para ver los archivos "asumir sin cambios" y "omitir el árbol de trabajo" marcados con una letra especial. Los archivos "skip-worktree" están marcados con
S
.Editar : como mencionó @amacleod , hacer un alias para enumerar todos los archivos ocultos es un buen truco para no tener que recordarlo. Yo uso
alias hidden="git ls-files -v | grep '^S'"
en mi .bash_profile. ¡Funciona muy bien!fuente
git ls-files -v | grep '^S'
para enumerar solo los archivos que he "ocultado" con skip-worktree. Esperaba hacer un alias "oculto" para ese comando, pero poner una redirección de tubería en el alias no parecía funcionar.!
. Como este[alias] ignored = !git ls-files -v | grep "^S"
Probado, funciona.grep
, no lo sé. Depende de tu caparazón, supongo. Git Bash viene congrep
, creo.'
no funcionó pero"
sí, es decirgit ls-files -v | grep "^S"
Si desea deshacer todos los archivos que se aplicaron, omita el árbol de trabajo, puede usar el siguiente comando:
git ls-files -v
imprimirá todos los archivos con su estadogrep -i ^S
filtrará los archivos y seleccionará solo omitir worktree (S) u omitir worktree y asumir que no ha cambiado (s), -i significa ignorar mayúsculas y minúsculascut -c 3-
eliminará el estado y dejará solo rutas, cortando desde el tercer carácter hasta el finaltr '\012' '\000'
reemplazará el carácter de final de línea (\ 012) a cero (\ 000)xargs -0 git update-index --no-skip-worktree
pasará todos los caminos separados por cero caracteresgit update-index --no-skip-worktree
a deshacerfuente
Basado en la respuesta @ GuidC0DE, aquí hay una versión para Powershell (uso posh-git )
Y para referencia también el comando opuesto para ocultar los archivos:
fuente
Para aquellos que usan Tortoise Git:
TortoiseGit > Check for modifications
Show ignore local changes flagged files
. Debería ver el archivo que ignoró (o todos los archivos que ignoró, si hizo clic derecho en la carpeta)Unflag as skip-worktree and assume-unchanged
fuente
Para todos los que aman los alias de Bash, aquí está mi conjunto para gobernarlos a todos (basado en C0DEF52)
fuente
Esta respuesta está dirigida a personas menos técnicas que usan Windows.
Si no recuerda / sabe en qué archivos hizo clic en "skip-worktree", utilice:
Para solucionar su problema:
Puede ir a los archivos -> hacer clic con el botón derecho -> restaurar a una versión anterior -> hacer clic en la pestaña "git" en la parte superior -> desmarcar la casilla de verificación "skip-worktree" -> hacer clic en "Aplicar" en la parte inferior.
Si los archivos son demasiados para arreglarlos a mano, entonces deberá consultar las otras respuestas.
fuente