如何重新创建已删除的.gitmodule文件?

时间:2013-12-20 17:14:03

标签: git git-submodules

我的仓库中有一个子模块,我想我无意中删除了.gitmodules文件。

我不想做git submodule add <git@git:...>,因为这会将子模块的原始repo拉到文件夹中并删除我对子模块所做的更改。所以我想做的只是重新创建.gitmodules文件。

如何重新创建它?

1 个答案:

答案 0 :(得分:1)

文件是否已提交到存储库?如果是这样,您可以从存储库的根目录执行类似git checkout -- .gitmodules的操作。

如果.gitmodules文件未提交到存储库,您可能需要手动重建它。幸运的是,您需要的大部分信息都可以在.git/config

中找到
...
[submodule "vendor/foo"]
        url = https://somesite.tld/user/repository.git
...

对于每个子模块,请将此部分从.git/config复制到.gitmodules。然后在每个指向存储库中模块位置的部分下添加一个新行path

...
[submodule "vendor/foo"]
        path = vendor/foo
        url = https://somesite.tld/user/repository.git
...

在删除.gitmodules文件之前,这应该会让您非常接近您所处的位置。您可以使用git submodule status验证您是否已正确使用。如果您的路径设置不正确,您将获得类似

的内容
No submodule mapping found in .gitmodules for path 'vendor/foo'

如果.gitmodules设置正确,您应该会看到类似

的内容
0123456789abcdef01234567890abcdef0123456 vendor/foo (heads/master)

现在你已经解决了所有问题,提交.gitmodules文件!它应该是您的存储库的一部分。

相关问题