your working untracked please files everything clean cache before git git-clean

working - git rm



git clean: ¿Qué significa "no eliminaría"? (5)

¿Puedo decir qué está causando que git considere, pero luego decido en contra, eliminándolos?

¡En realidad puedes! (Desde julio de 2013, próximo git 1.8.4):
El comando " git clean " aprendió un modo interactivo.

Consulte commit 17696002086e8c6b9e998543d212e707c7d511ab para la implementación inicial:

Consulte commit d1239264f2786d7ea15543b980c6bf6afbc4701a para la implementación:

Agrega una nueva acción para git-clean interactivo: filtrar por patrón .
Cuando el usuario elige esta acción, el usuario puede ingresar patrones separados por espacios (la misma sintaxis que gitignore ), y cada candidato limpio que coincida con uno de los patrones se excluirá de la limpieza.
Cuando el usuario siente que está bien, presiona ENTER y regresa al cuadro de diálogo de confirmación.

Ver commit db627fd568410499c47d764937c3d7a10bbadffa para pruebas y ejemplos.

Consulte commit c0be6b4c8a1d16a92efad00d73683075cf2da60d para la documentación

Muestra lo que se haría y limpia archivos de forma interactiva.

Modo interactivo

Cuando el comando ingresa al modo interactivo, muestra los archivos y directorios que deben limpiarse, y entra en su bucle de comando interactivo.

El bucle de comandos muestra la lista de subcomandos disponibles y muestra un mensaje " What now> ".
En general, cuando el mensaje finaliza con un solo '' > '', puede seleccionar solo una de las opciones dadas y escribir devuelto , como esto:

------------ *** Commands *** 1: clean 2: filter by pattern 3: select by numbers 4: ask each 5: quit 6: help What now> 1 ------------

También puede decir c o clean arriba siempre que la elección sea única.

El bucle de comando principal tiene 6 subcomandos.

clean::

Comience a limpiar archivos y directorios, y luego salga.

filter by pattern::

Esto muestra los archivos y directorios que se eliminarán y emite un mensaje " Input ignore patterns>> ".
Puede ingresar patrones separados por espacios para excluir archivos y directorios de la eliminación.
Por ejemplo, " *.c *.h " *.c *.h los archivos que terminen con " .c " y " .h " de la eliminación.
Cuando esté satisfecho con el resultado filtrado, presione ENTER (vacío) para volver al menú principal.

select by numbers

Esto muestra los archivos y directorios que se eliminarán y emite un aviso " Select items to delete>> ".
Cuando el indicador finaliza con una doble " >> " como esta, puede hacer más de una selección, concatenada con espacios en blanco o coma.
También puedes decir rangos.
Por ejemplo, " 2-5 7,9 " para elegir 2,3,4,5,7,9 de la lista.
Si se omite el segundo número en un rango, se toman todos los parches restantes.
Ej. " 7- " para elegir 7,8,9 de la lista.
Puedes decir '' * '' para elegir todo.
También cuando esté satisfecho con el resultado filtrado, presione ENTER (vacío) para regresar al menú principal.

ask each::

Esto comenzará a limpiarse, y debe confirmar uno por uno para poder eliminar elementos.
Tenga en cuenta que esta acción no es tan eficiente como las dos acciones anteriores.

quit::

Esto le permite salir sin hacer limpieza.

help::

Mostrar un breve uso de git-clean interactivo.

Cuando ejecuto git clean --dry-run los resultados son un poco como:

Would remove an_untracked_file Would remove an_untracked_file_2 Would not remove some_unrelated_folder/subfolder/

Las carpetas "no relacionadas" se rastrean y no han tenido cambios, por lo que no esperaría que git las elimine.

Pero, ¿por qué git report Would not remove para algunas, pero no todas, de las carpetas normales (y totalmente intactas) de mi proyecto?

¿Puedo decir qué está causando que git considere, pero luego decido en contra, eliminándolos?

git status solo muestra los archivos sin seguimiento que conozco. Como se esperaba.

git ls-files --other --exclude-standard devuelve esos mismos archivos sin seguimiento. Como se esperaba.

git ls-files --other --exclude-standard --directory devuelve esos mismos archivos no rastreados, más un montón de directorios aparentemente normales. Esto no es lo que esperaba ver ya que pensé que el propósito de --directory era reducir , no aumentar el número de resultados devueltos.

Luego de verificar los directorios inesperados, parece que cada uno está vacío, excepto por una subcarpeta ".gitignore" d .svn. Quizás esto sea un factor en las cosas.

¿Alguien puede ayudarme a entender este comportamiento?

Gracias


Estoy usando git versión 2.10.0 en mac, y de alguna manera no puedo usar

git clean -df

para eliminar los archivos sin seguimiento, así que usé esto en su lugar:

git checkout

PD:

Si alguien puede explicar en los comentarios por qué no puedo usar

git clean -df

para eliminar los archivos, estaría muy agradecido ... gracias

ADVERTENCIA también perderá sus archivos rastreados :(


Por defecto, git clean no elimina las carpetas. Te dice que ve una carpeta sin seguimiento, pero no la eliminará. Asígnele el indicador -d para indicarle que también elimine directorios, como en git clean -d -n


Si ciertos archivos y carpetas continúan fallando al ejecutar el comando, ejecute un

git clean -d -f

La -f forzaría la operación.

Use -n para una carrera en seco .


Esta respuesta es principalmente para fines de referencia, ya que creo que es el escenario más común para limpiar su directorio de repositorio.

Para eliminar todos los directorios sin seguimiento de forma recursiva:

git clean -d -f -x

-d para directorios, -x para eliminar directorios en su lista de ignorados también (cosas como bin y build ), que es lo que necesito la mayor parte del tiempo y -f para confirmar que sabe lo que está haciendo.