4

我在找到这个问题的答案时遇到了问题,所以我将它发布给后代。

情况是,您有一个带有子模块的 git repo(类似于 svn 外部)。您想要更新该引用以指向外部存储库中的不同提交。你可能认为“git submodule sync”或“git submodule update”会这样做——你错了。

4

2 回答 2

4

步骤是:

  • cd 到子模块所在的实际目录。
  • 运行 'git pull origin' 或任何您想要将其设置为新提交的操作。
  • cd 出该目录(大概是存储库根目录)并运行“git status” - 您将看到目录已更改。如果你做一个差异,你会看到这样的东西:
差异 --git a/default/bin/hdvcs b/default/bin/hdvcs
索引 bbd3f56..7c9394c 160000
--- a/默认/bin/hdvcs
+++ b/默认/bin/hdvcs
@@ -1 +1 @@
-子项目提交bbd3f56898054e533e81b52b90b94155841b40a8
+子项目提交 7c9394c8520e41a704e6658360064758b20a3dfc
  • 提交此更改。
于 2010-02-16T23:57:08.047 回答
1

如果要将所有 git 子模块更新为远程仓库的 HEAD,只需键入

git submodule foreach git pull origin master

于 2011-01-05T13:33:14.373 回答