cambios - git ver archivos modificados
¿Cómo eliminar archivos locales(sin seguimiento) del árbol de trabajo de Git actual? (30)
¿Cómo eliminar archivos locales sin seguimiento de su árbol de trabajo actual?
Una forma sencilla de eliminar archivos sin seguimiento
Para eliminar todos los archivos sin seguimiento, la forma simple es agregarlos todos primero y restablecer el repositorio como se muestra a continuación.
git add --all git reset --hard HEAD
Limpia el repositorio de git y todos los submódulos recursivamente
El siguiente comando limpiará el repositorio de git actual y todos sus submódulos de forma recursiva:
(git clean -d -x -f && git submodule foreach --recursive git clean -d -x -f)
He fallado al usar las respuestas más populares aquí. De todos modos, git no elimina los archivos sin seguimiento del repositorio. No tengo idea de por qué. ¡Esta es mi respuesta súper simplificada sin comandos especiales de GIT!
Misión: eliminar archivos sin seguimiento del repositorio git:
- Mueve archivos y carpetas a otra parte de tu carpeta de proyecto local por un tiempo
- Elimine todas las líneas en .gitignore sobre estos archivos y carpetas para la confirmación
- Git añadir.
- Git commit -m "Limpiando repositorio de archivos sin seguimiento"
- Git push
Todos los archivos y carpetas han sido eliminados del repositorio.
Permite restaurarlos en localhost si los necesitas:
- Mueva de nuevo todos los archivos y carpetas que ha movido temporalmente a la carpeta del proyecto local
- Mueva hacia atrás todas las líneas sobre estos archivos y carpetas a .gitignore
- Git añadir.
- Git commit -m "Comprobación o archivos que no aparecen de nuevo en el repositorio de git"
- Git push
¡Estás listo!
Tenga cuidado al ejecutar el comando `git clean`.
Siempre use -n
antes de ejecutar el comando real, ya que le mostrará qué archivos se eliminarán.
git clean -n -d
git clean -f -d
De forma predeterminada, git clean
solo eliminará los archivos sin seguimiento que no se ignoran. No se eliminará ningún archivo que coincida con un patrón en su .gitignore u otros archivos ignorados. Si también desea eliminar esos archivos, puede agregar un -x
al comando de limpieza.
git clean -f -d -x
También hay un modo interactivo disponible -i
con el comando de limpieza
git clean -x -i
Alternativamente
Si no está 100% seguro de que eliminar su trabajo no comprometido sea seguro, podría usar el almacenamiento de datos en su lugar.
git stash --all
También borrará su directorio, pero le dará flexibilidad para recuperar los archivos en cualquier momento utilizando Stash con Apply o Pop . Luego, en un momento posterior, puedes limpiar tu alijo usando:
git stash drop // or clean
El comando normal de git clean
no elimina los archivos sin git version 2.9.0.windows.1
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!
El comando recomendado para eliminar archivos sin seguimiento de git docs es git clean
git clean : elimina los archivos sin seguimiento del árbol de trabajo
Método sugerido: Modo interactivo mediante el uso de git clean -i
para que podamos controlarlo. Veamos las opciones disponibles restantes.
Opciones Disponibles:
git clean
-d -f -i -n -q -e -x -X (can use either)
Explicación:
1. -d
Elimine directorios sin seguimiento además de los archivos sin seguimiento. Si un directorio sin seguimiento es administrado por un repositorio Git diferente, no se elimina de forma predeterminada. Utilice la opción -f dos veces si realmente desea eliminar dicho directorio.
2. -f, --force
Si la variable de configuración de Git clean.requireForce no se establece en falso, git clean se negará a ejecutarse a menos que se indique -f, -n o -i.
3. -i, --interactivo
Muestra lo que se haría y limpia archivos de forma interactiva. Consulte "Modo interactivo" para más detalles.
4. -n, --dry-run
No elimines nada, solo muestra lo que se haría.
5. -q, --quiet
Quédese tranquilo, solo informe los errores, pero no los archivos que se eliminaron con éxito.
6. -e, --exclude =
Además de los que se encuentran en .gitignore (por directorio) y $ GIT_DIR / info / exclude, también considere que estos patrones están en el conjunto de las reglas de ignorar vigentes.
7. -x
No use las reglas de ignorar estándar que se leen desde .gitignore (por directorio) y $ GIT_DIR / info / exclude, pero aún así use las reglas de ignorar dadas con las opciones -e. Esto permite eliminar todos los archivos sin seguimiento, incluidos los productos de compilación. Se puede usar (posiblemente junto con git reset) para crear un directorio de trabajo prístino para probar una construcción limpia.
8. -X
Eliminar solo los archivos ignorados por Git. Esto puede ser útil para reconstruir todo desde cero, pero mantener los archivos creados manualmente.
Esto es lo que siempre uso:
git clean -fdx
Para un proyecto muy grande es posible que desee ejecutarlo un par de veces.
Me gusta git stash push -u
porque puedes deshacerlos todos con git stash pop
.
EDITAR: También encontré una manera de mostrar un archivo sin seguimiento en un alijo (por ejemplo, git show stash@{0}^3
) https://.com/a/12681856/338986
EDIT2: git stash save
está en desuso a favor de push
. Gracias @ script-wolf.
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 eliminará ofreciéndole la posibilidad de incluir / excluir los archivos afectados. En general, aún más rápido que ejecutar el --dry-run
obligatorio antes de la limpieza real.
Tendrá que tirar un -d
si también quiere ocuparse de las carpetas vacías. Al final, hace un bonito alias:
git iclean
Dicho esto, el uso adicional de comandos interactivos puede ser agotador para los usuarios experimentados. Estos días acabo de usar el ya mencionado git clean -fd
Para eliminar los archivos sin seguimiento, primero debe usar el comando para ver los archivos que se verán afectados por la limpieza
git clean -fdn
Esto le mostrará la lista de archivos que serán eliminados. Ahora para eliminar realmente esos archivos use este comando:
git clean -fd
Para mi solo seguí trabajado:
git clean -ffdx
En todos los demás casos, recibí el mensaje "Directorio de omisión" para algunos subdirectorios.
Para saber qué se eliminará antes de eliminar realmente:
git clean -d -n
Saldrá algo como:
Quitaría sample.txt
Para borrar todo lo que aparece en la salida del comando anterior:
git clean -d -f
Saldrá algo como:
Eliminando sample.txt
Podemos eliminar fácilmente los archivos locales sin seguimiento del árbol de trabajo de git actual utilizando los comentarios de git que se encuentran a continuación.
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]
Ejemplo:
git reset --hard HEAD
Enlaces:
Según la documentación de Git git clean
Eliminar archivos sin seguimiento del árbol de trabajo
El paso 1 es mostrar lo que se eliminará utilizando la opción -n
:
git clean -n
Paso limpio - cuidado: esto borrará los archivos :
git clean -f
- Para eliminar directorios, ejecute
git clean -f -d
ogit clean -fd
- Para eliminar los archivos ignorados, ejecute
git clean -f -X
ogit clean -fX
- Para eliminar los archivos ignorados y no ignorados, ejecute
git clean -f -x
ogit clean -fx
Note la diferencia entre mayúsculas y minúsculas en la X
para los dos últimos comandos.
Si clean.requireForce
se establece en "verdadero" (el valor predeterminado) en su configuración, debe especificar -f
contrario, en realidad no ocurrirá nada.
Nuevamente, vea los documentos de git-clean
para obtener más información.
Opciones
-F
--fuerza
Si la variable de configuración de Git clean.requireForce no se establece en falso, git clean se negará a ejecutarse a menos que se indique -f, -n o -i.
-X
No use las reglas de ignorar estándar que se leen desde .gitignore (por directorio) y $ GIT_DIR / info / exclude, pero aún así use las reglas de ignorar dadas con las opciones -e. Esto permite eliminar todos los archivos sin seguimiento, incluidos los productos de compilación. Se puede usar (posiblemente junto con git reset) para crear un directorio de trabajo prístino para probar una construcción limpia.
-X
Eliminar solo los archivos ignorados por Git. Esto puede ser útil para reconstruir todo desde cero, pero mantener los archivos creados manualmente.
-norte
--dry-run
No elimines nada, solo muestra lo que se haría.
-re
Elimine directorios sin seguimiento además de los archivos sin seguimiento. Si un directorio sin seguimiento es administrado por un repositorio Git diferente, no se elimina de forma predeterminada. Utilice la opción -f dos veces si realmente desea eliminar dicho directorio.
Si el directorio sin seguimiento es un repositorio git propio (por ejemplo, submódulo), debe usar -f
dos veces:
git clean -d -f -f
Si es necesario para eliminar archivos sin seguimiento de un subdirectorio particular,
git clean -f {dir_path}
Y forma combinada de eliminar archivos / dir sin seguimiento y archivos ignorados.
git clean -fxd {dir_path}
después de esto, tendrá archivos modificados solo en git status
.
Si solo desea eliminar los archivos enumerados como no seguidos por ''git status''
git stash save -u
git stash drop "stash@{0}"
Prefiero esto a ''git clean'' porque ''git clean'' eliminará los archivos ignorados por git, por lo que tu próxima compilación tendrá que reconstruir todo y también puedes perder tu configuración de IDE.
Un salvavidas para tal situación que acabo de inventar y probar (que funciona perfectamente):
git add .
git reset --hard HEAD
¡Tener cuidado! Asegúrese de confirmar los cambios necesarios (incluso en archivos sin seguimiento) antes de realizar esto .
Una mejor manera es usar: git clean.
git clean -d -x -f
Esto elimina los archivos sin seguimiento, incluidos los directorios (-d)
y los archivos ignorados por git (-x)
.
Además, reemplace el argumento -f
con -n
para realizar una ejecución en dry-run
o -i
para el modo interactivo y le dirá qué se eliminará.
Use git clean -f -d
para asegurarse de que los directorios también se eliminen.
Luego puedes verificar si tus archivos realmente se han ido con el git status
.
git-clean es lo que estás buscando. Se utiliza para eliminar archivos sin seguimiento del árbol de trabajo.
git clean -f -d -x $(git rev-parse --show-cdup)
aplica limpia al directorio raíz, sin importar dónde lo llame dentro de un árbol de directorio de repositorio. Lo uso todo el tiempo, ya que no te obliga a dejar la carpeta en la que trabajas ahora y te permite limpiar y comprometer desde el lugar donde te encuentras.
Asegúrese de que las banderas -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.
También hay otras banderas disponibles, solo compruebe git clean --help
.
git clean -f to remove untracked files from working directory.
He cubierto algunos conceptos básicos aquí en mi blog, git-intro-basic-commands
git clean -fd
elimina el directorio
git clean -fX
elimina los archivos ignorados
git clean -fx
elimina los archivos ignorados y no ignorados
Puede usarse todas las opciones anteriores en combinación como
git clean -fdXx
Consulte el manual de Git para más ayuda.
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 por fuerza
-d para directorio
-x para archivos ignorados (agregar si es necesario)
Nota: Agregue -n o --dry-run para solo verificar lo que hará.
De acuerdo, eliminar archivos y carpetas no rastreados no deseados es fácil usando git
en la línea de comandos, solo hazlo así:
git clean -fd
Comprueba dos veces antes de hacerlo, ya que eliminará los archivos y carpetas sin hacer ningún historial ...
También en este caso, -f
significa fuerza y -d
significa directorio ...
Por lo tanto, si solo desea eliminar archivos, puede usar -f
solo:
git clean -f
Si desea eliminar (directorios) y archivos, puede eliminar solo directorios y archivos sin seguimiento como este:
git clean -fd
Además, puede usar el indicador -x
para incluir los archivos que git ignora. Esto sería útil si desea eliminar todo.
Y al agregar la marca -i
, git le pide permiso para borrar archivos uno por uno mientras viaja.
Si no está seguro y desea verificar las cosas primero, agregue la -n
.
Utilice -q
si no desea ver ningún informe después de una eliminación exitosa.
También creo la imagen de abajo para que sea más fácil de memorizar, especialmente he visto a muchas personas confundir -f
para limpiar la carpeta a veces o mezclarla de alguna manera.
Eliminar todas las carpetas y archivos adicionales en este repositorio + submódulos
Esto te pone en el mismo estado que un clon nuevo.
git clean -ffdx
Eliminar todas las carpetas y archivos adicionales en este repositorio pero no sus submódulos
git clean -fdx
Eliminar solo carpetas adicionales pero no archivos (por ejemplo, carpeta de compilación)
git clean -fd
Eliminar carpetas adicionales + archivos ignorados (pero no archivos agregados recientemente)
Si el archivo no fue ignorado y aún no ha sido registrado, entonces permanece. Tenga en cuenta la capital X.
git clean -fdX
Nuevo modo interactivo
git clean
oh-my-zsh con zsh proporciona esos alias geniales a través del complemento git. Se pueden usar en bash también.
gclean=''git clean -fd''
gpristine=''git reset --hard && git clean -dfx''
-
gclean
elimina los directorios singclean
además de los archivos sin seguimiento . -
gpristine
restablece los cambios locales, elimina directorios no rastreados, archivos no rastreados y no usa las reglas de ignorar estándar de .gitignore (por directorio) y $ GIT_DIR / info / exclude, pero sigue usando las reglas de ignorar dadas con las opciones -e . Esto permite eliminar todos los archivos sin seguimiento, incluidos los productos de compilación. Se puede utilizar (posiblemente junto con git reset) para crear un directorio de trabajo prístino para probar una construcción limpia .
git clean -f
eliminará los archivos sin seguimiento del git actual
git clean -fd
cuando desee eliminar directorios y archivos, esto solo eliminará directorios y archivos sin seguimiento