我有点像一个git newb所以请在这里忍受我。我有一个项目有一个需要刷新的子模块。
该项目正在使用子模块的版本1,并且有更改,所以我想使其使用最新版本。
如何刷新子模块并应用更改,以便克隆或从项目中提取的其他用户将使用最新的更新版本1.5?
以下是该项目的外观:
ProjectA:配置为repoA的远程仓库 它依赖于指向repoB的子模块。
项目根目录中的.git / config文件如下所示:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = git@/github.com/foo/foo.git
项目根目录中还有.gitmodules文件:
[submodule "Vendor/some-external-library"]
path = Vendor/some-external-library
url = https://github.com/some-external-library/some-external-library.git
在'some-external-library'目录中,没有.gitmodules文件,只有标准的.git目录和相应的文件。 .git / config指向repoB。
答案 0 :(得分:0)
子模块实际上是在主仓库中检出的git repos,而你的主仓库知道它们的内容,比如他们检查过的提交。
所以,你可能想要做的是转到sumbodule的文件夹并转到git pull origin master
(或者你要提取而不是master的提交),然后执行一个提交,反映这个改变(更改主要仓库上的子模块
简而言之:
cd submodule_dir
git pull origin master
cd main_dir
git add submodule_dir
git commit
你也可以git submodule foreach git pull
按时更新所有子模块引用,但这对于repo mantainability来说可能是一个坏主意。
git help submodule