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?

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!


¡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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.