Agregué una nueva carpeta (en realidad la cloné desde otro repositorio y lo olvidé), luego hice algunos cambios allí. Además, hice muchos cambios en otros lugares, cuando intenté hacer git add
# Changes not staged for commit:
# (use "git add <file>..." to update what will be committed)
# (use "git checkout -- <file>..." to discard changes in working directory)
# (commit or discard the untracked or modified content in submodules)
#
# modified: protected/ext/SpecificFolder (modified content)
#
Entonces recuerdo que tal vez había una carpeta .git (porque anteriormente hice clon de git allí). Fui a esa carpeta y eliminé los archivos no necesarios (carpetas) y la carpeta .git también. Verifiqué el estado de git, nada extraño. Luego, confirme y finalice la compra en otra rama y, de repente, descubro que esta carpeta no se agregó a la última confirmación. En realidad, se agregó la carpeta pero se ignoraron los archivos internos. Ahora, incluso cuando estoy tratando de hacer git add
para esa carpeta no sucede nada y git status
no muestra ningún cambio :(
Que puedo hacer ?
.git
repositorio y que los archivos se agregaban a ese repositorio en lugar del repositorio en la carpeta principal. Incluso en la GUI de Git, esa subcarpeta apareció como un archivo en lugar de como una carpeta.Respuestas:
Git no rastrea directorios; pero solo los archivos dentro de ellos.
Parece que puede tener un patrón de ignorar que no está haciendo
add
nada. Puede ver los archivos ignorados congit status --ignored
; entonces pueden ser rastreados congit add --force protected/ext/SpecificFolder
fuente
git status --ignored
, de alguna manera estoy pensando que está conectado con el submóduloGit no rastrea los directorios VACÍOS. Si tiene un proyecto con varias capas de subdirectorios, git de hecho rastrea los directorios con archivos en ellos. Si no fuera así, sería un repositorio plano de archivos.
fuente
Por casualidad hice exactamente lo que hizo este usuario: agregar un repositorio git existente dentro de otro.
El síntoma fue que git reconoció ese directorio como un archivo y, por lo tanto, no pudo agregar los archivos del directorio.
Para resolver esa pregunta, eliminé la
.git
carpeta en la carpeta, moví esa carpeta en otro directorio, borré el índice, eliminé el directorio donde estaba en mi repositorio y luego pude agregar el directorio correctamente.La moraleja de esto es: no agregue un repositorio dentro de otro.
fuente
git rm --cached path_to_submodule
Hay una mejor respuesta aquí: uso de .gitkeep
TL; DR, agregue un
.gitkeep
archivo a su directorio vacíofuente
Intente agregar un archivo en ese directorio.
Si ve una salida como la siguiente:
Hay una regla en uno de sus gitignores que le impide agregar ese directorio.
fuente
Encontré efectos secundarios similares después de intentar convertir lo que solía ser un submódulo en una subcarpeta normal.
Volver a agregar la carpeta que intentaba convertir parecía funcionar, pero resulta que los archivos que contiene no se agregaron.
Intentar agregar específicamente un archivo dentro de él me dio una mejor advertencia
fuente