¿Cómo se eliminan los archivos locales no rastreados de su árbol de trabajo actual?
git
branch
git-branch
Solo lectura
fuente
fuente
git clean
ahora tiene un modo interactivo ! Vea mi respuesta a esta otra pregunta : git 1.8.4+git clean
o 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 clean
eliminarás o usarás--dry-run
para que te lo diga sin eliminar nada.rm files-to-be-deleted
Respuestas:
El paso 1 es mostrar lo que se eliminará utilizando la
-n
opción:Paso limpio - cuidado: esto eliminará archivos :
git clean -f -d
ogit clean -fd
git clean -f -X
ogit clean -fX
git clean -f -x
ogit clean -fx
Tenga en cuenta la diferencia de casos en el
X
los dos últimos comandos.Si
clean.requireForce
se establece en "verdadero" (el valor predeterminado) en su configuración, es necesario especificarlo; de lo-f
contrario, no pasará nada.Nuevamente vea los
git-clean
documentos para más información.fuente
git clean -f
funciona 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 -d
para 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
-f
opció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 -d
git clean -nd
ygit 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-run
antes de la limpieza real.Tendrá que agregar un
-d
si 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 -fd
fuente
git clean -i
solo 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
-f
dos veces:git clean -d -f -f
fuente
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 --all
porgit 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 clean
aparentemente también elimina todo lo que se ignora. Simplemente eliminó minode_modules
carpeta. 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 -n
todos modos antes de hacer la eliminación real (o usogit clean -i
).git clean
elimina los archivos ignorados solo si usa la opción-x
o-X
, de lo contrario, solo elimina los archivos no rastreados.Me gusta
git stash push -u
porque 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 save
está en desuso a favor depush
. Gracias @ script-wolf.fuente
-u
es equivalente a--include-untracked
. Puedes encontrar ayuda congit help stash
.save
opció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 -fd
elimina el directoriogit clean -fX
elimina archivos ignoradosgit clean -fx
elimina archivos ignorados y no ignoradosse pueden usar todas las opciones anteriores en combinación como
git clean -fdXx
consulte el manual de git para obtener más ayuda
fuente
git clean -fdXx
produce 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
git
en 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,
-f
significa fuerza y-d
significa 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
-x
indicador para incluir los archivos que git ignora. Esto sería útil si desea eliminar todo.Y agregar
-i
bandera 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
-n
bandera.Úselo
-q
si 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
-f
por 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
-f
argumento con-n
para realizar un modo interactivodry-run
o-i
para 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 HEAD
git add . && git reset --hard
git reset --hard
restablece 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
,-x
coinciden 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
-x
y solíagit clean -ffd
evitar 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 -n
Producirá algo como:
Eliminaría sample.txt
Para eliminar todo lo que figura en la salida del comando anterior:
git clean -d -f
Producirá 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
-n
antes de ejecutar el comando real, ya que le mostrará qué archivos se eliminarán.Por defecto,
git clean
solo 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-x
comando de limpieza.También hay un modo interactivo disponible
-i
con 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 for
git 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 -i
para 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
uggested
pero eso es sólo un "uggestion
jajajaEl
git clean
comando 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 -ffdx
es 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'
gclean
elimina los directorios sin seguimiento además de los archivos sin seguimiento .gpristine
restablezca 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 stash
comando, luego puedes obtener archivos escondidos y cambios.git clean
Tambié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