ver modificados cambios archivos archivo git branch git-branch

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:

  1. Mueve archivos y carpetas a otra parte de tu carpeta de proyecto local por un tiempo
  2. Elimine todas las líneas en .gitignore sobre estos archivos y carpetas para la confirmación
  3. Git añadir.
  4. Git commit -m "Limpiando repositorio de archivos sin seguimiento"
  5. Git push

Todos los archivos y carpetas han sido eliminados del repositorio.

Permite restaurarlos en localhost si los necesitas:

  1. Mueva de nuevo todos los archivos y carpetas que ha movido temporalmente a la carpeta del proyecto local
  2. Mueva hacia atrás todas las líneas sobre estos archivos y carpetas a .gitignore
  3. Git añadir.
  4. Git commit -m "Comprobación o archivos que no aparecen de nuevo en el repositorio de git"
  5. 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:

  1. https://git-scm.com/docs/git-reset
  2. ¿Cómo uso ''git reset --hard HEAD'' para volver a un commit anterior?
  3. Restablecer la rama del repositorio local para que sea igual que el repositorio remoto HEAD
  4. https://jwiegley.github.io/git-from-the-bottom-up/3-Reset/4-doing-a-hard-reset.html

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 o git clean -fd
  • Para eliminar los archivos ignorados, ejecute git clean -f -X o git clean -fX
  • Para eliminar los archivos ignorados y no ignorados, ejecute git clean -f -x o git 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 sin gclean 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