2012-05-25 9 views
12

Tengo un repositorio clonado. Hay un directorio, lo llaman a/b/c que solía ser su propio repo, es decir, no había a/b/c/.git/etcgit ignorando un directorio, es como si no existiera

Ahora quiero que los archivos administrados en el repositorio principal. No me importa la historia en a/b/c, así que eliminé el directorio .git en a/b/c

Pero el problema es que git status está ignorando completamente a/b/c. No puedo git add. Es como si hubiera puesto el camino en .gitignore (no lo hice).

Obviamente antes, tenía sentido para git ignorar un subdirectorio con un .git dir en él, pero ahora ¿cómo sabe la diferencia?

¿Hay algún otro lugar que ignore los archivos que no sean .gitignore y .git/info/excludes? No hay nada en el archivo .git/config?

Me han preguntado qué dice el estado de git. No mucho:

/path/to/root/dir $ git status 
# On branch fred 
nothing to commit (working directory clean) 

Y lo que dice git add. Aún menos (nada)

/path/to/root/dir $ git add a/b/c 
+0

¿verificó si el archivo .gitignore en el directorio de nivel superior? – jonathanbell

+0

sí, no tiene nada en ella que coincidir con la ruta. – artfulrobot

+0

Cuál es el mensaje se obtiene cuando 'git add'? ¿Qué muestra' git status' exactamente? –

Respuesta

17

no tengo idea de lo que era el problema o cómo surgió, pero aquí es cómo lo arreglé, en caso de cualquier otra persona se queda atascado:

git rm --cached a/b/c 
git commit -m "removed phantom a/b/c dir" 
git add a/b/c 
git commit -m "finally able to add a/b/c" 

Curiosamente git log a/b/c solo enumera el compromiso "finalmente capaz ...". git show HEAD^ (el "fantasma degradados ..." comprometerse dice

-Subproject commit c311ccdc91c8be66019aa138d1c4af49a6b7a81c 

lo que parece que se estaba tratando a que algunas especialmente cómo. Voy a tener que leer más sobre subproyectos y/o submódulos.

+0

Parece que hay/había algo en el índice, independientemente de cualquier archivo .gitmodules faltante en el superproyecto, que creía que el directorio era un submódulo rastreado. Sería útil descubrir por qué. –

+0

de acuerdo! Misterio para mí – artfulrobot

+0

Busque un .gitmodules en el repo superior. El archivo debe listar todos los submódulos que ese repositorio piensa que tiene (incluido el que eliminó ;-) –

2

¿Tiene un archivo global de gitignore? (. V molesto) (Marque con git config core.excludesfile)

+1

no. Ese comando no devuelve ningún resultado. – artfulrobot

0

uso git add -f para forzar git para añadir archivos está ignorando la actualidad.

Cuestiones relacionadas