我有一个子模块设置项目。 一位同事偶然删除了目标文件夹,并改为创建一个符号链接(指向项目文件夹之外),提交它。删除后git子模块不工作
即使删除链接并创建空目录,现在我无法恢复子模块。 .gitmodule和.git/config没有改变。 git submodule add和git submodule init不会做任何事情。
我无法恢复有问题的提交,因为它还包含很多其他更改。
这怎么解决?
我有一个子模块设置项目。 一位同事偶然删除了目标文件夹,并改为创建一个符号链接(指向项目文件夹之外),提交它。删除后git子模块不工作
即使删除链接并创建空目录,现在我无法恢复子模块。 .gitmodule和.git/config没有改变。 git submodule add和git submodule init不会做任何事情。
我无法恢复有问题的提交,因为它还包含很多其他更改。
这怎么解决?
您需要恢复目录,因为它们存储在您的回购之前的更改。
重新创建这些子模块根目录将不起作用。
什么工作是:
git checkout [email protected]{2 days ago} -- path/to/submodule/directory
(如果你知道子模块是工作3天前,例如)
将恢复空目录实际上是在一个special entry指数。
然后,git submodule update --init
将恢复其内容。
解决的办法是删除子模块的目标目录,并重新添加子模块:
git rm libs/routing
git submodule add ../librouting.git libs/routing
并没有为我 – 2013-03-19 16:17:27
@ didi_X8确定的工作(这是为我工作)。 +1到您的解决方案。 – VonC 2013-03-19 16:18:21