git - etiquetas - remove tag local and remote
git-¿Cómo eliminar una carpeta vacía y empujar ese cambio? (4)
La respuesta corta: no puede enviar cambios a los directorios (agregados, eliminados, etc.) porque Git no rastrea los directorios por sí mismos .
Según las FAQ :
Actualmente, el diseño del índice git (área de preparación) solo permite que los archivos se incluyan en la lista, y nadie lo suficientemente competente como para hacer el cambio para permitir que los directorios vacíos se hayan preocupado lo suficiente por esta situación para remediarlo.
Los directorios se agregan automáticamente al agregar archivos dentro de ellos. Es decir, los directorios nunca tienen que agregarse al repositorio y no se rastrean por sí solos.
Así que en lo que respecta a Git, su directorio vacío ya no existe.
Descubrí que el hábito de usar git clean -fd
elimina la necesidad de impulsar la eliminación de directorios. Sin embargo, git clean
puede eliminar los elementos que no desee que se eliminen (incluidos los archivos nuevos que aún no haya confirmado), por lo que tiendo a usar primero git clean -fdn
para ver qué se eliminará si utilizo el comando.
Parece que puede verse obligado a hablar con sus compañeros desarrolladores para limpiar ese directorio.
¿Cómo puedo eliminar una carpeta vacía localmente y también hacer que eso suceda para otros colaboradores que comparten el control remoto a través de la función de extracción? Sé que las carpetas no están ''rastreadas'' en ese sentido por git pero la pregunta sigue siendo.
por ejemplo, moví un archivo a otra carpeta y confirmé el cambio (del movimiento).
Pero no puedo git rm name
la carpeta porque "no coincide" el git rmdir name
no existe.
Puedo hacer una git clean -f folder
pero, ¿cómo se aumenta eso?
Puedo recuperar el archivo directamente, pero ¿cómo puedo hacer que la eliminación del directorio se haga correctamente y se envíe al repositorio y luego a otros cuando se extraen para que su carpeta existente se elimine?
No puedes empujar carpetas vacías. Pero si desea limpiar las carpetas vacías en su repositorio local / clonado, confirme los últimos cambios ... Luego simplemente elimine todos los archivos de la carpeta .git en su copia local. Luego, reinicie todos los cambios nuevamente, lo que devuelve todos los archivos pero deja de lado los directorios vacíos que no rastrea.
Una forma un poco pirata de evitar esto es crear un archivo falso en el directorio, cometerlo y luego eliminarlo. Al eliminarlo también se eliminará el directorio. Así que crea name / fake.txt
git add name/fake.txt
git commit -m "message"
git rm name/fake.txt
git commit -m "message2"
git add --all
git clean -f -d
git commit -m "trying to remove folders"
git push