我的仓库中有一个子模块,我想我无意中删除了.gitmodules
文件。
我不想做git submodule add <git@git:...>
,因为这会将子模块的原始repo拉到文件夹中并删除我对子模块所做的更改。所以我想做的只是重新创建.gitmodules
文件。
如何重新创建它?
答案 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
文件!它应该是您的存储库的一部分。