Estoy intentando agregar algunos submódulos a mi .vim/bundles
directorio, y cuando intento agregar este repositorio en particular, Git me da un error extraño que nunca antes había visto:
$ git submodule add -f git://github.com/derekwyatt/vim-scala.git .vim/bundle/vim-scala
fatal: You are on a branch yet to be born
Unable to checkout submodule '.vim/bundle/vim-scala'
¿Alguna idea de qué puede causar esto?
Si clono el mismo repositorio en un directorio de prueba (no a través del comando del submódulo), funciona bien y crea los archivos esperados.
git
git-submodules
mate b
fuente
fuente
.vim/bundle/vim-scala
la ruta para eliminar, fue.git/modules/.vim/bundle/vim-scala
dir /AH
.git/modules/path/to/submodule
directorio e intentar volver a agregar el submódulo, recibo el error La siguiente ruta es ignorada por uno de sus archivos .gitignore: ruta / a / submódulo .Debe agregar un submódulo dentro de un repositorio existente, ese repositorio debe estar en un estado para agregar y confirmar el enlace del submódulo, y el repositorio del submódulo debe tener un compromiso para verificar.
Ahora, el repositorio del submódulo debe estar bien si puede crear un clon regular en otro lugar. Sin embargo, parece que se
submodule add
queja si el repositorio está vacío, mientras que el clon no. Este tipo sugiere que esto se puede arreglar simplemente ejecutando el mismosubmodule add
comando nuevamente.Si el repositorio interno no está vacío, verifique el repositorio que desea que contenga el submódulo. Cambie al mismo directorio donde ejecutó
git submodule add
y ejecutegit status
, ygit branch
para verificar que su repositorio contenedor tenga al menos una rama creada y no esté en un estado extraño.fuente
master
rama. El repositorio al que estoy tratando de agregar este como un submódulo está en lamaster
rama, no tiene problemas obvios (el estado devuelve algunos archivos modificados, pero eso es todo), y lo más extraño de todo es que puedo agregar otros submódulos bien a este repositorio .fatal
advertencia de mi OP, git deja un directorio vacío en.vim/bundle/vim-scala
. También noté que, aunque.gitmodules
no se ha modificado, agregó algunas líneas que se refieren a este repositorio de github.com.git/config
, pero después de eliminarlas, sigo recibiendo el mismofatal
mensaje de error.This guy suggests this is fixable by just running the same submodule add command again.
. He estado luchando contra este problema tratando de encontrar una respuesta sensata y esto finalmente lo solucionó. Esto fue para git 1.8.0 bajo MSYS mientras creaba un submódulo desde BitBucket, así que si se encuentra en la misma situación, intente esto primero.Este error puede ocurrir si está agregando un submódulo que no tiene una
master
rama. Si desea usar otra rama al agregar el submódulo (develop
por ejemplo), puede usar el siguiente comando:fuente
git submodule add -b master <repo.git> <folder>
ayudómaster
solución que funcionó para mí.Como aludió @ drew-noakes, esto puede deberse al intento de agregar un submódulo usando un nombre de directorio que aparece en su archivo .gitignore .
fuente