¿Hay alguna manera fácil de cambiar el nombre de un directorio de submódulos git (aparte de pasar por todo el movimiento de eliminarlo y volver a agregarlo con un nuevo nombre de destino)?
Y mientras estamos en eso, ¿por qué simplemente no puedo hacer lo siguiente en el directorio principal? git mv old-submodule-name new-submodule-name
git
git-submodules
Lars Tackmann
fuente
fuente
.gitmodules
manualmente cuando mueva un submódulo. mira mi respuesta a continuaciónnpm
muestra cómo funciona simple. Un día ... tal vez ... alguien ... lo reescribirá ... mientras tanto ...Respuestas:
Encontré el siguiente flujo de trabajo funcionando:
mv oldpath newpath
git rm oldpath
git add newpath
git submodule sync
Nota: este enfoque no actualiza el índice y .gitmodules correctamente en las versiones 2018 de GIT.
Nota: Es posible que ahora pueda hacerlo
git mv oldpath newpath
ahora, como se señala en la respuesta de VonC . (Asegúrese de estar utilizando la última versión de git)fuente
git add newpath
no usar una barra diagonal.git/modules/SUBMODULE/config
archivo, de modo queworktree
vuelva a apuntar al directorio correcto.2.13.1
. Pero simplemente hacergit mv old new
funciona como un encanto. Solo necesito hacer git commit para completar los cambios.Git1.8.5 (octubre de 2013) debería simplificar el proceso . Simplemente haz un:
Ver más en commit 0656781fadca1 :
git 2.9 (junio de 2016) mejorará
git mv
para el submódulo:Ver commit a127331 (19 abr 2016) por Stefan Beller (
stefanbeller
) .(Fusionada por Junio C Hamano -
gitster
- en commit 9cb50a3 , 29 abr 2016)fuente
fatal: source directory is empty, source=my_source, destination=my_destination
. Intentaremos esto nuevamente cuando 1.8.5 tenga una versión estable.La solución correcta es:
Fuente: Cambiar nombre del submódulo git
fuente
Acabo de probar algunas de las sugerencias anteriores. Estoy corriendo:
Descubrí que era mejor quitar el inicio del submódulo, eliminar el directorio y crear un nuevo submódulo.
Al menos eso es lo que mejor me funcionó. YMMV!
fuente
No es posible cambiarle el nombre, por lo que debe eliminarlo primero (
deinit
) y agregarlo nuevamente.Entonces, después de quitarlo:
También puede verificar y eliminar las referencias a él en:
.gitmodules
.git/config
.git/modules/<name>
(es mejor hacer una copia de seguridad), ya que cada carpeta tiene unconfig
archivo donde guarda la referenciaworktree
luego realice sus cambios mediante la confirmación de cualquier cambio en su repositorio de la siguiente manera:
y verifique si no tiene problemas pendientes:
así que ahora puedes agregar el submódulo git nuevamente:
fuente
Edite el archivo .gitmodules para cambiar el nombre del submódulo y luego cambie el nombre del directorio del submódulo.
Creo que es posible que tengas que hacer algo
git submodule sync
después, pero no estoy en condiciones de verificarlo ahora.fuente
MacOs : cuando quiero usar la solución VonC para cambiar la carpeta de submódulos
Common
a minúsculas:yo obtengo
Solución: use un nombre de carpeta temporal y muévase dos veces:
Eso es todo :)
fuente