gpt4 book ai didi

git - 自动添加 git 子模块 (.gitmodules)

转载 作者:行者123 更新时间:2023-12-04 21:21:13 29 4
gpt4 key购买 nike

我有一个包含几个子模块的仓库。我想添加一些其他的,对我来说最快的方法是使用.gitmodules (在我看来,这应该清楚地允许任何类型的子模块管理)。

但是,在编辑此文件并添加子模块时,在 git submodule init 之后没有添加任何内容(除了修改之前已经存在的子模块)。

有没有不通过git submodule add的方式添加子模块的解决方案? (即,只需编辑 .gitmodules 文件,然后编辑 git submodule update --init )?

也就是说,以下工作流应该自动添加子模块“foo/bar”:

Add the following to .gitmodules:
[submodule "foo/bar"]
path = foo/bar
url = https://example.com/foo.git

Run the following command after saving:
git submodule init
git submodule update

Expected result:
submodule 'foo/bar' automatically gets added
it is also updated (the update command)

最佳答案

添加 Git 子模块时,Git 会创建 .gitmodules文件和一个名为 git-submodule 的子模块将添加如下内容:

[submodule "git-submodule"]
path = git-submodule
url = https://github.com/TomasHubelbauer/git-submodule
相同的添加到 .git/config在该文件中的现有内容之后。
.git/modules 中创建以子模块命名的子模块文件夹.
此文件夹几乎与 .git 相同。实际子模块存储库的目录,但它不包含实际的 objects (相反,子模块数据被 check out 到它的目录并且它的元数据在这里)。
这意味着理论上,您可以手动添加子模块,而无需使用 git submodule add。 ,但您必须重新创建所有这些配置文件。
但是仍然可以想象将子模块存储库克隆到一个单独的目录并复制它的 .git到这个。那可能行得通。
但是,添加子模块也会更改索引, .git/index ,因此您还必须手动更新此哈希,此时,您正在重新实现 Git,但需要手动更新。
因此,我认为手动添加 Git 子模块几乎不可行。

关于git - 自动添加 git 子模块 (.gitmodules),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24777973/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com