update submodules submodule remote recursive commands absorbgitdirs git git-submodules

submodules - git submodule update recursive



git submodule modificó el estado de los archivos (3)

La forma en que se informa el estado de los submódulos de git ha cambiado mucho con respecto a las versiones recientes de git, por lo que realmente debería incluir el resultado de git --version para que nosotros podamos ayudar con precisión.

Sin embargo, en cualquier caso, la salida de git diff example.com/soundmanager debería decirle más. Si ve resultados con el mismo nombre de commit, pero con -dirty agregado a la nueva versión, por ejemplo:

diff --git a/example.com/soundmanager b/example.com/soundmanager --- a/example.com/soundmanager +++ b/example.com/soundmanager @@ -1 +1 @@ -Subproject commit c5c6bbaf616d64fbd873df7b7feecebb81b5aee7 +Subproject commit c5c6bbaf616d64fbd873df7b7feecebb81b5aee7-dirty

... que eso significa que el git status en el submódulo no está limpio - prueba cd example.com/soundmanager y luego git status para ver qué está pasando.

Por otro lado, si ve diferentes versiones de confirmación, por ejemplo:

diff --git a/example.com/soundmanager b/example.com/soundmanager index c4478af..c79d9c8 160000 --- a/example.com/soundmanager +++ b/example.com/soundmanager @@ -1 +1 @@ -Subproject commit c4478af032e604bed605e82d04a248d75fa513f7 +Subproject commit c79d9c83c2864665ca3fd0b11e20a53716d0cbb0

... eso significa que la versión en la que se encuentra su submódulo (es decir, lo que ve en cd example.com/soundmanager && git show HEAD ) es diferente de la versión comprometida en el árbol del proyecto principal (es decir, lo que ve de git rev-parse HEAD:example.com/soundmanager ). Si el primero es correcto, debe agregar y comprometer la nueva versión del submódulo en su proyecto principal, con algo como:

git add example.com/soundmanager git commit -m "Update the soundmanager submodule"

Por otro lado, si este último es lo que desea, puede cambiar la versión con la que está el submódulo:

git submodule update example.com/soundmanager

He agregado un submódulo en el árbol de mi carpeta principal de git y no he cambiado nada, pero está apareciendo modificado. ¿Qué debo hacer al respecto?

$ git status # On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: example.com/soundmanager # no changes added to commit (use "git add" and/or "git commit -a")

He intentado una actualización de submódulo de git, pero no hace nada.


Me puse en este estado al agregar erróneamente un submódulo al agregar específicamente un directorio en lugar de solo agregar el contenido de un nuevo directorio.

Necesitaba simplemente eliminar el submódulo así:

git rm --cached path/to/my/new_directory

Y luego agregue los contenidos como lo pretendía en primer lugar:

git add path/to/my/new_directory/*


Utilicé el comando follow git y resolvió este problema:

git submodule update --init --recursive