¿Cómo se eliminan los archivos locales no rastreados de su árbol de trabajo actual?
git
branch
git-branch
Solo lectura
fuente
fuente

git cleanahora tiene un modo interactivo ! Vea mi respuesta a esta otra pregunta : git 1.8.4+git cleano alguna variación en las respuestas a continuación, incluida la versión interactiva para eliminar solo archivos selectivos, pero el modo interactivo puede ser tedioso. Hagas lo que hagas, asegúrate de comprender quégit cleaneliminarás o usarás--dry-runpara que te lo diga sin eliminar nada.rm files-to-be-deletedRespuestas:
El paso 1 es mostrar lo que se eliminará utilizando la
-nopción:Paso limpio - cuidado: esto eliminará archivos :
git clean -f -dogit clean -fdgit clean -f -Xogit clean -fXgit clean -f -xogit clean -fxTenga en cuenta la diferencia de casos en el
Xlos dos últimos comandos.Si
clean.requireForcese establece en "verdadero" (el valor predeterminado) en su configuración, es necesario especificarlo; de lo-fcontrario, no pasará nada.Nuevamente vea los
git-cleandocumentos para más información.fuente
git clean -ffunciona solo en el directorio donde se llama (y subdirectorios). Si desea limpiar toda la copia de trabajo, debe llamarla en su directorio raíz.git clean -f :/funciona como si lo hubiera ejecutado en el directorio raíz de repositorio. Ver también respuestas posteriores que también representan submódulos congit clean -ffxd :/Use
git clean -f -dpara asegurarse de que los directorios también se eliminen.En realidad, no elimine nada, solo muestre lo que se haría.
o
Elimine los directorios sin seguimiento además de los archivos sin seguimiento. Si un directorio no rastreado es administrado por un repositorio Git diferente, no se elimina de manera predeterminada. Use la
-fopción dos veces si realmente desea eliminar dicho directorio.Luego puede verificar si sus archivos realmente se han ido
git status.fuente
git clean -n -dgit clean -ndygit clean -fd.Me sorprende que nadie haya mencionado esto antes:
Eso significa interactivo y obtendrá una visión general rápida de lo que se va a eliminar, ofreciéndole la posibilidad de incluir / excluir los archivos afectados. En general, aún más rápido que ejecutar el obligatorio
--dry-runantes de la limpieza real.Tendrá que agregar un
-dsi también desea cuidar las carpetas vacías. Al final, es un buen alias:Dicho esto, el uso adicional de la mano de los comandos interactivos puede ser agotador para los usuarios experimentados. En estos días solo uso el ya mencionado
git clean -fdfuente
git clean -isolo funciona si se llama desde la raíz de la copia de trabajo?git-clean- Eliminar archivos no rastreados del árbol de trabajofuente
Si el directorio sin seguimiento es un repositorio de git propio (por ejemplo, submódulo), debe usar
-fdos veces:git clean -d -f -ffuente
Manera simple de eliminar archivos no rastreados
Para eliminar todos los archivos no rastreados, la forma más sencilla es agregarlos todos primero y restablecer el repositorio como se muestra a continuación
fuente
git add --allporgit add .. Por lo tanto, puede hacerlo de manera más corta en líneagit add . && git reset --hard HEAD(tenga mucho cuidado con este comando) .git clean?git cleanaparentemente también elimina todo lo que se ignora. Simplemente eliminó minode_modulescarpeta. Hacer esto primero organizaría todos los archivos, excepto los ignorados, y luego los eliminaría haciendo un reinicio. Los archivos ignorados no serán tocados.git clean -ntodos modos antes de hacer la eliminación real (o usogit clean -i).git cleanelimina los archivos ignorados solo si usa la opción-xo-X, de lo contrario, solo elimina los archivos no rastreados.Me gusta
git stash push -uporque puedes deshacerlos todosgit stash pop.EDITAR: También encontré una manera de mostrar el archivo sin seguimiento en un alijo (por ejemplo
git show stash@{0}^3) https://stackoverflow.com/a/12681856/338986EDIT2:
git stash saveestá en desuso a favor depush. Gracias @ script-wolf.fuente
-ues equivalente a--include-untracked. Puedes encontrar ayuda congit help stash.saveopción fue desaprobada a favor depush, que hace lo mismo pero más. Puede leer más aquí, /programming/44680028/whats-the-difference-between-git-stash-save-and-git-stash-push/44681952Esto es lo que siempre uso:
Para un proyecto muy grande, es posible que desee ejecutarlo un par de veces.
fuente
git-clean es lo que estás buscando. Se utiliza para eliminar archivos no rastreados del árbol de trabajo.
fuente
Si es necesario para eliminar archivos no rastreados de un subdirectorio particular,
Y forma combinada de eliminar directorios / archivos sin seguimiento y archivos ignorados.
después de esto, solo habrá modificado los archivos en
git status.fuente
Elimine todas las carpetas y archivos adicionales en este repositorio + submódulos
Esto te pone en el mismo estado que el clon nuevo.
Elimine todas las carpetas y archivos adicionales en este repositorio pero no sus submódulos
Elimine carpetas adicionales pero no archivos (por ejemplo, compilación o carpeta de registros)
Eliminar carpetas adicionales + archivos ignorados (pero no archivos recién agregados)
Si el archivo no se ignoró y aún no se registró, entonces permanece. Tenga en cuenta la X mayúscula.
Nuevo modo interactivo
fuente
git clean -fdelimina el directoriogit clean -fXelimina archivos ignoradosgit clean -fxelimina archivos ignorados y no ignoradosse pueden usar todas las opciones anteriores en combinación como
git clean -fdXxconsulte el manual de git para obtener más ayuda
fuente
git clean -fdXxproduce el mensaje de error "fatal: -x y -X no se pueden usar juntos" (usando git-2.8). Para su última oración dentro de su respuesta, proporcione un enlace al manual de git. SaludosOK, eliminar archivos y carpetas no rastreados no deseados es fácil de usar
giten la línea de comandos, simplemente hazlo así:Verifique dos veces antes de hacerlo, ya que eliminará los archivos y carpetas sin hacer ningún historial ...
También en este caso,
-fsignifica fuerza y-dsignifica directorio ...Por lo tanto, si solo desea eliminar archivos, solo puede usar
-f:Si desea eliminar (directorios) y archivos, puede eliminar solo directorios y archivos sin seguimiento como este:
Además, puede usar el
-xindicador para incluir los archivos que git ignora. Esto sería útil si desea eliminar todo.Y agregar
-ibandera hace que git le pida permiso para eliminar archivos uno por uno sobre la marcha.Si no está seguro y quiere verificar las cosas primero, agregue la
-nbandera.Úselo
-qsi no desea ver ningún informe después de una eliminación exitosa.También creo la imagen a continuación para que sea más memorable, ¡especialmente he visto a muchas personas confundirse
-fpor limpiar carpetas a veces o mezclarlas de alguna manera!fuente
Una mejor manera es usar: git clean
Esto elimina los archivos no rastreados, incluidos los directorios
(-d)y archivos ignorados porgit (-x).Además, reemplace el
-fargumento con-npara realizar un modo interactivodry-runo-ipara y le dirá qué se eliminará.fuente
Enfoque interactivo del usuario:
-i para interactivo
-f para forzar
-d para directorio
-x para archivos ignorados (agregue si es necesario)
Nota: Agregue -n o --dry-run para verificar lo que hará.
fuente
Un truco salvavidas para tal situación que acabo de inventar y probar (que funciona perfectamente):
¡Tener cuidado! Asegúrese de confirmar los cambios necesarios (incluso en archivos no rastreados) antes de realizar esto .
fuente
git add .git commit -m 'about to delete'git reset --hard HEAD~git add . && git reset --hard HEADgit add . && git reset --hardgit reset --hardrestablece todos los cambios no confirmados PERO ARCHIVOS SIN SEGUIMIENTO al estado de la última confirmación. Es por eso que primero necesitamosgit add ., que organiza todos los archivos no rastreados (para que también se restablezcan)git clean -f -d -x $(git rev-parse --show-cdup)se aplica limpio 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 abandonar la carpeta donde trabajas ahora y permite limpiar y confirmar desde el lugar donde estás.Asegúrese de que las banderas
-f,-d,-xcoinciden con sus necesidades:También hay otras banderas disponibles, solo verifique
git clean --help.fuente
Para mí solo lo siguiente funcionó:
En todos los demás casos, recibí el mensaje "Skipping Directory" para algunos subdirectorios.
fuente
-xy solíagit clean -ffdevitar borrar archivos en .gitignore.Si solo desea eliminar los archivos enumerados como no rastreados por 'git status'
Prefiero esto a 'git clean' porque 'git clean' eliminará los archivos ignorados por git, por lo que su próxima compilación tendrá que reconstruir todo y también puede perder su configuración IDE.
fuente
Para saber qué se eliminará antes de eliminar realmente:
git clean -d -nProducirá algo como:
Eliminaría sample.txt
Para eliminar todo lo que figura en la salida del comando anterior:
git clean -d -fProducirá algo como:
Eliminando sample.txt
fuente
Para eliminar los archivos no rastreados, primero debe usar el comando para ver los archivos que se verán afectados por la limpieza
Esto le mostrará la lista de archivos que se eliminarán. Ahora, para eliminar esos archivos, use este comando:
fuente
Tenga cuidado al ejecutar el comando `git clean`.
Siempre use
-nantes de ejecutar el comando real, ya que le mostrará qué archivos se eliminarán.Por defecto,
git cleansolo eliminará los archivos no rastreados 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-xcomando de limpieza.También hay un modo interactivo disponible
-icon el comando cleanAlternativamente
Si no está 100% seguro de que eliminar su trabajo no comprometido es seguro, puede usar el escondite
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, puede limpiar su alijo usando:
fuente
git stash save and type some comment as to what this stash was forgit clean -f to remove untracked files from working directory.He cubierto algunos conceptos básicos aquí en mi blog, git-intro-basic-command
fuente
El comando uggested para eliminar archivos no rastreados de git docs es git clean
git clean : elimina los archivos no rastreados del árbol de trabajo
Método sugerido: Modo interactivo mediante el uso
git clean -ipara que podamos tener control sobre él. deja ver las opciones disponibles restantes.Opciones Disponibles:
Explicación:
1. -d
Elimine los directorios sin seguimiento además de los archivos sin seguimiento. Si un directorio no rastreado es administrado por un repositorio Git diferente, no se elimina de manera predeterminada. Use 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 está establecida en false, git clean se negará a ejecutarse a menos que se especifique -f, -n o -i.
3. -i, --interactivo
Muestra lo que se haría y limpia los archivos de forma interactiva. Consulte "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
Cállate, solo informa errores, pero no los archivos que se eliminan correctamente.
6. -e, --excluir =
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 leídas de .gitignore (por directorio) y $ GIT_DIR / info / exclude, pero aún use las reglas de ignorar dadas con las opciones -e. Esto permite eliminar todos los archivos sin seguimiento, incluidos los productos de compilación. Esto se puede usar (posiblemente junto con git reset) para crear un directorio de trabajo prístino para probar una compilación limpia.
8. -X
Eliminar solo los archivos ignorados por Git. Esto puede ser útil para reconstruir todo desde cero, pero mantener archivos creados manualmente.
fuente
uggestedpero eso es sólo un "uggestionjajajaEl
git cleancomando normal no elimina los archivos no rastreados con migit version 2.9.0.windows.1.fuente
Podemos eliminar fácilmente los archivos locales no rastreados del árbol de trabajo git actual mediante el uso de los comentarios de git a continuación.
Ejemplo:
Enlaces :
fuente
git clean -ffdxes la soluciónfuente
eliminará los archivos no rastreados del git actual
cuando desee eliminar directorios y archivos, esto eliminará solo los directorios y archivos sin seguimiento
fuente
oh-my-zsh con zsh proporciona esos grandes alias a través del complemento git. También se pueden usar en bash.
gclean='git clean -fd'gpristine='git reset --hard && git clean -dfx'gcleanelimina los directorios sin seguimiento además de los archivos sin seguimiento .gpristinerestablezca los cambios locales, elimine los directorios no rastreados, los archivos no rastreados y no use las reglas de ignorar estándar leídas de .gitignore (por directorio) y $ GIT_DIR / info / exclude, pero aún use las reglas de ignorar dadas con las opciones -e. Esto permite eliminar todos los archivos sin seguimiento, incluidos los productos de compilación. Esto se puede usar (posiblemente junto con git reset) para crear un directorio de trabajo prístino para probar una compilación limpia .fuente
bash. Edité mi respuesta para reflejar eso.Me gusta usar el
git stashcomando, luego puedes obtener archivos escondidos y cambios.git cleanTambién es una buena opción, pero depende totalmente de sus requisitos. Aquí está la explicación de git stash y git clean, 7.3 Herramientas Git - Almacenamiento y limpiezafuente