2011-03-21 15 views

Respuesta

7

Usted dice que desea volver a antes init y actualización, que sería la situación en la que el submódulo está todavía presente en .gitmodules, pero es un directorio vacío que no está registrado en .git/config.

Suponga que su submódulo se llama foo/bar, entonces se podría hacer lo siguiente:

# Move the submodule out of your repository, just in case you have changes 
# in there that you realise afterwards that you'd like to preserve: 
mv foo/bar/ ~/backups/old-foo-bar/ 

# Recreate the submodule directory, but empty this time: 
mkdir foo/bar/ 

# Remove all the config variables associated with that submodule: 
git config --remove-section submodule.foo/bar 
# Note that the submodule name is *without* the trailing slash 
0

Si ustedes, los cambios fueron cometidos, entonces usted debería ser capaz de verificar la reflog:

git reflog 

Una vez que encuentre el cambio establece que perdió puede combinar de nuevo en

Si. sus cambios no fueron confirmados, entonces no se pueden recuperar.

+0

Lo que quería era una forma de preservar el submódulo, pero solo eliminé los archivos poblados en mi espacio de trabajo. Resulta que puedo eliminar el directorio y no afecta el submódulo de ninguna manera. Entonces, en mi caso, mis submódulos están en un directorio llamado proyectos. Puedo eliminar proyectos/toolchain y los contenidos se han ido, pero git no registra la eliminación. Gracias a todos por probar este. – user561638

1

Try (con git1.8.3, abril de 2013 22d) a:

git submodule deinit 

(Ver "How do I remove a Git submodule?")

Esto quita toda la sección submodule.<name> de .git/config tampoco para el (los) submódulo (s) dado (s)

Puede que tenga que eliminar el árbol de trabajo para ese submódulo.

Cuestiones relacionadas