【发布时间】:2018-06-27 08:00:05
【问题描述】:
所以我有一个包含一堆子模块的仓库。我只想更新其中一个,但我想更新到最新的提交,我知道它位于名为 origin/mybranch 的分支的顶端。我要更新的子模块是 mysubmodule(例如)
首先我尝试了这个:
git submodule update --remote -- mysubmodule
这有点像一场灾难,因为它似乎检查了最新的 origin/master 分支(它已经很老了)。
所以我阅读了一些 git 文档,这似乎是默认行为 - 很公平!
但是如何签出具有分支 origin/mybranch 的远程提交?
我尝试过这样的事情:
git submodule update --remote --checkout mybranch -- mysubmodule
git submodule update --remote --checkout origin/mybranch -- mysubmodule
但我还没有设法解决这个问题:(
【问题讨论】:
-
试试
cd mysubmodule;git checkout origin/mybranch。 -
@ElpieKay 啊,我很想用
git sumbodule ...来做。我知道我可以 cd 进入子模块并执行正常的 git 命令:) -
git submodule没有这样的命令。如果您可以将cd放入目录并在那里运行git,为什么要这样做? -
@NilsWerner 我正在运行一个批处理功能,该功能在每个项目的顶层运行一个命令。所以我想要一个可以从项目的顶层更新我的子模块的命令......这就是为什么它应该......只为我:))......但如果它不可能,那么这是一个完全有效的答案
-
@code_fodder 由于在脚本中使用 cd 不是一个好习惯,您可以使用项目顶层的
git --git-dir=mysubmodule/.git checkout origin/mybranch。
标签: git git-submodules