¿Cómo eliminar files locales (sin seguimiento) del tree de trabajo actual de Git?

¿Cómo se eliminan los files locales sin seguimiento de su tree de trabajo actual?

Según la documentation de Git git clean

Eliminar files sin seguimiento del tree de trabajo


El paso 1 es mostrar qué se eliminará al usar la opción -n :

 git clean -n 

Paso limpio: tenga cuidado: esto eliminará los files :

 git clean -f 
  • Para eliminar directorys, ejecute git clean -f -d o git clean -fd
  • Para eliminar files ignorados, ejecute git clean -f -X o git clean -fX
  • Para eliminar files ignorados y no ignorados, ejecute git clean -f -x o git clean -fx

Tenga en count la diferencia de mayúsculas y minúsculas en la X para los dos últimos commands.

Si clean.requireForce se establece en "true" (valor pnetworkingeterminado) en su configuration, se necesita especificar -f contrario, nada sucederá realmente.

Nuevamente vea los documentos de git-clean para más información.

Opciones

-F

–fuerza

Si la variable de configuration de Git clean.requireForce no está configurada como falsa, git clean rechazará la ejecución a less que se le dé -f, -n o -i.

-X

No use las reglas de ignorar estándar leídas desde .gitignore (por directory) y $ DIR_ITR / info / exclude, pero aún use las reglas de ignorar que se dan con las opciones -e. Esto permite eliminar todos los files sin seguimiento, incluidos los productos de compilation. Esto se puede usar (posiblemente junto con el reinicio de git) para crear un directory de trabajo prístino para probar una compilation limpia.

-X

Elimine solo los files ignorados por Git. Esto puede ser útil para rebuild todo desde cero, pero mantener files creados manualmente.

-norte

–dry-run

En realidad, no elimine nada, solo muestre lo que se haría.

-re

Elimine los directorys sin seguimiento además de los files sin seguimiento. Si un directory no rastreado es administrado por un repository de Git diferente, no se elimina de forma pnetworkingeterminada. Use la opción -f dos veces si realmente desea eliminar dicho directory.

Use git clean -f -d para asegurarse de que los directorys también se eliminen.

A continuación, puede verificar si sus files realmente se han ido con el git status .

git-clean – Elimina files sin seguimiento del tree de trabajo

Me sorprende que nadie haya mencionado esto antes:

 git clean -i 

Eso significa interactivo y obtendrá una visión general rápida de lo que se va a eliminar, ofreciéndole la posibilidad de include / excluir los files afectados. En general, aún más rápido que ejecutar el obligatorio --dry-run antes de la limpieza real.

Deberá agregar una -d si también desea ocuparse de las carpetas vacías. Al final, es un buen alias:

 git iclean 

Una vez dicho esto, la mano extra de commands interactivos puede ser agotador para los usuarios experimentados. Estos días solo uso el ya mencionado git clean -fd

Si el directory no rastreado es un repository de git propio (por ejemplo, un submodule), debe usar -f dos veces:

git clean -d -f -f

Me gusta git stash save -u porque puedes deshacerlos todos con git stash pop .

EDITAR: También encontré una manera de mostrar el file sin seguimiento en un alijo (por ejemplo, git show stash@{0}^3 ) http://sofes.miximages.com/a/12681856/338986

Manera simple de eliminar files sin seguimiento

Para eliminar todos los files sin seguimiento, la manera simple es agregarlos todos primero y restablecer el repository como se muestra a continuación.

 git add --all git reset --hard HEAD 

Esto es lo que siempre uso:

 git clean -fdx 

Para un proyecto muy grande es posible que desee ejecutarlo un par de veces.

git-clean es lo que estás buscando. Se usa para eliminar files sin seguimiento del tree de trabajo.

Si es necesario para eliminar files sin seguimiento de un subdirectory particular,

 git clean -f {dir_path} 

Y una forma combinada de eliminar directorys / files no rastreados y files ignorados.

 git clean -fxd {dir_path} 

después de esto, habrá modificado los files solo en git status .

git clean -fd elimina el directory

git clean -fX elimina los files ignorados

git clean -fx elimina los files ignorados y no ignorados

se puede utilizar todas las opciones anteriores en combinación como

git clean -fdXx

Revisa el manual de git para más ayuda

Una mejor manera es usar: git clean

 git clean -d -x -f 

Esto elimina files sin seguimiento, incluidos directorys (-d) y files ignorados por git (-x) .

Además, reemplace el argumento -f por -n para ejecutar en dry-run o -i para el modo interactivo y le indicará qué se eliminará.

Enfoque interactivo del usuario:

 git clean -i -fd Remove .classpath [y/N]? N Remove .gitignore [y/N]? N Remove .project [y/N]? N Remove .settings/ [y/N]? N Remove src/com/arsdumpgenerator/inspector/ [y/N]? y Remove src/com/arsdumpgenerator/manifest/ [y/N]? y Remove src/com/arsdumpgenerator/s3/ [y/N]? y Remove tst/com/arsdumpgenerator/manifest/ [y/N]? y Remove tst/com/arsdumpgenerator/s3/ [y/N]? y 

-i para interactivo
-f para la fuerza
-d para el directory
-x para files ignorados (agregar si es necesario)

Nota: agregue -n o –dry-run para simplemente verificar lo que hará.

Para eliminar todo: obtenga el repo en el mismo estado que si se clonara en fresco

 git clean -fdx 

Para eliminar carpetas extrañas, como salidas de compilation

 git clean -fd 

Para eliminar carpetas + files extraños, como files temporales build + IDE

Esto elimina solo el file ignorado. Si el file no fue ignorado + no registrado, entonces permanece.

 git clean -fdX 

Nuevo modo interactivo

 git clean 

git clean -f -d -x $(git rev-parse --show-cdup) aplica limpieza al directory raíz, sin importar dónde lo llame dentro de un tree de directory del repository. Lo uso todo el time, ya que no te obliga a abandonar la carpeta en la que trabajas ahora y te permite limpiar y comprometer desde el lugar en el que te encuentras.

Asegúrese de que los indicadores -f , -d , -x coincidan con sus necesidades:

 -d Remove untracked directories in addition to untracked files. If an untracked directory is managed by a different Git repository, it is not removed by default. Use -f option twice if you really want to remove such a directory. -f, --force If the Git configuration variable clean.requireForce is not set to false, git clean will refuse to delete files or directories unless given -f, -n or -i. Git will refuse to delete directories with .git sub directory or file unless a second -f is given. This affects also git submodules where the storage area of the removed submodule under .git/modules/ is not removed until -f is given twice. -x Don't use the standard ignore rules read from .gitignore (per directory) and $GIT_DIR/info/exclude, but do still use the ignore rules given with -e options. This allows removing all untracked files, including build products. This can be used (possibly in conjunction with git reset) to create a pristine working directory to test a clean build. 

Hay otras banderas disponibles, solo revisa git clean --help .

OK, borrar files y carpetas no rastreados no deseados es fácil usando git en la command-line, solo haz esto:

 git clean -fd 

Verifique dos veces antes de hacerlo, ya que borrará los files y las carpetas sin hacer ningún historial …

También en este caso, -f significa fuerza y -d significa directory …

Por lo tanto, si solo desea eliminar files, puede usar -f solo:

 git clean -f 

Si desea eliminar (directorys) y files, puede eliminar solo directorys y files sin seguimiento como este:

 git clean -fd 

Además, puede usar la bandera -x para include los files que git ignora. Esto sería útil si quieres eliminar todo.

Y al agregar el -i , Git te pide permiso para eliminar files uno por uno sobre la marcha.

Si no está seguro y quiere verificar primero, agregue -n .

Use -q si no desea ver ningún informe después de la eliminación exitosa.

También creo la image a continuación para que sea más memorizable, especialmente he visto a mucha gente confundir -f para limpiar la carpeta a veces o confundirla de alguna manera.

eliminar archivos y carpetas no rastreados no deseados

Un salvavidas para tal situación que acabo de devise y probé (que funciona perfectamente):

 git add . git reset --hard HEAD 

¡Tener cuidado! Asegúrese de realizar los cambios necesarios (incluso en files que no estén sin seguimiento) antes de realizar esto .

Si solo desea eliminar los files enumerados como no rastreados por 'estado de git'

 git stash save -u git stash drop "stash@{0}" 

Prefiero esto a 'git clean' porque 'git clean' eliminará los files ignorados por git, por lo que su próxima compilation tendrá que rebuild todo y también puede perder su configuration IDE.

Para mí, solo lo siguiente funcionó:

 git clean -ffdx 

En todos los demás casos, recibí el post "Saltarse el directory" para algunos subdirectorys.

Alguien debería mencionar realmente:

 git clean [<options>] 

¿Estoy en lo cierto?

Para saber qué se eliminará antes de eliminar realmente:

git clean -d -n

Saldrá algo así como:

Quitaría sample.txt

Para eliminar todo lo que figura en la salida del command anterior:

git clean -d -f

Saldrá algo así como:

Eliminando sample.txt

Para eliminar los files sin seguimiento, primero debe usar el command para ver los files que se verán afectados por la limpieza.

 git clean -fdn 

Esto le mostrará la list de files que se eliminarán. Ahora para eliminar realmente esos files use este command:

 git clean -fd 

El command normal de git clean no elimina los files no rastreados con mi git version 2.9.0.windows.1 .

 $ git clean -fdx # doesn't remove untracked files $ git clean -fdx * # Append star then it works! 

git clean -f to remove untracked files from working directory.

He cubierto algunos conceptos básicos aquí en mi blog, git-intro-basic-commands

command uggested para eliminar files sin seguimiento de git docs es git clean

git clean – Elimina files sin seguimiento del tree de trabajo

Método sugerido: Modo Interativo usando git clean -i para que podamos tener control sobre él. deja ver las opciones disponibles restantes.

Opciones Disponibles:

 git clean -d -f -i -n -q -e -x -X (can use either) 

Explicación:

1. -d

Elimine los directorys sin seguimiento además de los files sin seguimiento. Si un directory no rastreado es administrado por un repository de Git diferente, no se elimina de forma pnetworkingeterminada. Use la opción -f dos veces si realmente desea eliminar dicho directory.

2. -f, –force

Si la variable de configuration de Git clean.requireForce no está configurada como falsa, git clean rechazará la ejecución a less que se le dé -f, -n o -i.

3. -i, –interactivo

Mostrar lo que se haría y limpiar files de forma interactiva. Vea "Modo interactivo" para más detalles.

4. -n, –dry-run

En realidad, no elimine nada, solo muestre lo que se haría.

5. -q, –quiet

Manténgase en silencio, solo informe los errores, pero no los files que se eliminan con éxito.

6. -e, –exclude =

Además de los encontrados en .gitignore (por directory) y $ GIT_DIR / info / exclude, también considere estos patrones en el set de las reglas de ignorar vigentes.

7. -x

No use las reglas de ignorar estándar leídas de .gitignore (por directory) y $ DIR_ID / info / exclude, pero aún así use las reglas de ignorar que se dan con las opciones -e. Esto permite eliminar todos los files sin seguimiento, incluidos los productos de compilation. Esto se puede usar (posiblemente junto con el reinicio de git) para crear un directory de trabajo prístino para probar una compilation limpia.

8. -X

Elimine solo los files ignorados por Git. Esto puede ser útil para rebuild todo desde cero, pero mantener files creados manualmente.

Tenga cuidado al ejecutar el command `git clean`.

Siempre use -n antes de ejecutar el command real, ya que le mostrará qué files se eliminarán.

 git clean -n -d git clean -f -d 

De forma pnetworkingeterminada, git clean solo eliminará los files sin seguimiento que no se ignoran. No se eliminará ningún file que coincida con un patrón en su .gitignore u otros files de ignorar. Si también desea eliminar esos files, puede agregar un -x al command limpiar.

 git clean -f -d -x 

También hay modo interactivo disponible -i con el command limpiar

 git clean -x -i 

Alternativamente

Si no está 100% seguro de que eliminar su trabajo no comprometido es seguro, puede usar el almacenamiento en su lugar

 git stash --all 

También borrará su directory, pero le dará flexibilidad para recuperar los files en cualquier momento utilizando escondites con apply o pop . Luego, en un punto posterior, podrías limpiar tu escondite usando:

 git stash drop // or clean 

Nota: Primero vaya al directory y busque la twig que desea limpiar.

-i modo interactivo y le dirá qué se eliminará y puede elegir una acción de la list.

  1. Para limpiar files solo [Las carpetas no se mostrarán y no se limpiarán]: $ git clean -i

  2. Para limpiar files y carpetas : $ git clean -d -i

-d incluidos directorys.


Si elige c de la list. Los files / carpetas se eliminarán y no se rastrearán y también eliminarán los files / carpetas que usted haya perdido. *

Por ejemplo: si reestructura la carpeta en su control remoto y saca los cambios a su computadora local. los files / carpetas creados inicialmente por otros estarán en una carpeta anterior y en la nueva que usted reestructure.

use git reset HEAD <file> para desempatar un file

El siguiente command limpiará el repository de git actual y todos los submodules:

 (git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f) 

Si usa oh-my-zsh con zsh bash, puede usar esos alias geniales:

gclean='git clean -fd'
gpristine='git reset --hard && git clean -dfx'

  • gclean elimina directorys no gclean además de files no rastreados .
  • gpristine restableció los cambios locales, eliminó los directorys no rastreados, los files no rastreados y no usa las reglas de ignorar estándar leídas de .gitignore (por directory) y $ DIR_ID / info / exclude, pero aún usa las reglas de ignorar dadas con -e opciones . Esto permite eliminar todos los files sin seguimiento, incluidos los productos de compilation. Esto se puede usar (posiblemente junto con el reinicio de git) para crear un directory de trabajo prístino para probar una compilation limpia .