No se puede agregar repo particular como un submódulo

2

Estoy cambiando a usar submódulos para mis plugins vim. La forma habitual de hacer esto es:

$ git submodule add https://github.com/vim-scripts/a.vim bundle/a.vim
Cloning into 'bundle/a.vim'...
etc, etc

Esto funciona bien con todos los complementos, pero Gundo:

$ git submodule add https://github.com/sjl/gundo.vim bundle/gundo

No hay salida de ejecutar este comando. El repositorio se agrega a .gitmodules y bundle/gundo se crea, pero está vacío excepto por un .git expediente.

$ cd bundle/gundo
$ git status
# On branch (null)
#
# Initial commit
#
nothing to commit (create/copy files and use "git add" to track)

Soy completamente nuevo en submódulos. ¿Qué tiene de especial este repositorio y cómo lo agrego correctamente?

Dean
fuente

Respuestas:

2

No estoy seguro de lo que está sucediendo exactamente, pero podría ser útil si verifica / proporciona la salida de lo siguiente:

cd bundle/gundo
git remote -v

Si la salida muestra que el repositorio tiene el origen correcto, entonces puede ser que necesite verificar la rama maestra, es decir:

cd bundle/gunco
git fetch
git checkout master

Si el submódulo aún está desordenado y todo falla, puede intentar eliminar el submódulo roto y todos los rastros de él de su repositorio. Puede hacer esto ejecutando los siguientes comandos desde el nivel superior de su árbol de trabajo git:

git config -f .git/config --remove-section submodule.bundle/gundo
git config -f .gitmodules --remove-section submodule.bundle/gundo
git rm --cached bundle/gundo
rm -rf .git/modules/bundle/gundo
rm -rf bundle/gundo

Después de esto, compruebe git status para asegurarse de que todo se ve normal. A continuación, intente crear el submódulo de nuevo.

Si nada de esto funciona, entonces intente agregar su versión de git (ejecute: git --version ) y su configuración (ejecute: git config -l ) a la pregunta, ya que podrían ayudar a otros a descubrir qué está pasando.

P.S: No es necesario pegar toda la salida de git config -l, y probablemente debería eliminar / enmascarar a user.name, user.email y cualquier otro dato que no quiera compartir en Internet.

¡Buena suerte!

maljub01
fuente
¡Gracias! La eliminación completa del submódulo de acuerdo con sus pasos hizo el truco. No estoy 100% seguro, pero creo que ingresé a la URL del repositorio de manera incorrecta la primera vez. Anteriormente intenté eliminar todos los rastros, pero no era lo suficientemente exhaustivo.
Dean