2013-03-18 126 views
2

我有一个子模块设置项目。 一位同事偶然删除了目标文件夹,并改为创建一个符号链接(指向项目文件夹之外),提交它。删除后git子模块不工作

即使删除链接并创建空目录,现在我无法恢复子模块。 .gitmodule和.git/config没有改变。 git submodule add和git submodule init不会做任何事情。

我无法恢复有问题的提交,因为它还包含很多其他更改。

这怎么解决?

回答

3

您需要恢复目录,因为它们存储在您的回购之前的更改。

重新创建这些子模块根目录将不起作用。

什么工作是:

git checkout [email protected]{2 days ago} -- path/to/submodule/directory 

(如果你知道子模块是工作3天前,例如)

将恢复空目录实际上是在一个special entry指数。

然后,git submodule update --init将恢复其内容。

+0

并没有为我 – 2013-03-19 16:17:27

+0

@ didi_X8确定的工作(这是为我工作)。 +1到您的解决方案。 – VonC 2013-03-19 16:18:21

1

解决的办法是删除子模块的目标目录,并重新添加子模块:

git rm libs/routing 
git submodule add ../librouting.git libs/routing