git - 如何将 git 中的子模块更新为该外部仓库中的 HEAD 提交

标签 git version-control external git-submodules

我在找到这个问题的答案时遇到了问题,所以我将其发布以供后代使用。

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

最佳答案

步骤是:

  • cd 到子模块所在的实际目录。
  • 运行“git pull origin”或任何您想将其设置为新提交的操作。
  • cd 离开该目录(大概是到存储库根目录)并运行“git status”——您将看到该目录已更改。如果你做一个差异你会看到这样的东西:
diff --git a/default/bin/hdvcs b/default/bin/hdvcs
index bbd3f56..7c9394c 160000
--- a/default/bin/hdvcs
+++ b/default/bin/hdvcs
@@ -1 +1 @@
-Subproject commit bbd3f56898054e533e81b52b90b94155841b40a8
+Subproject commit 7c9394c8520e41a704e6658360064758b20a3dfc
  • 提交此更改。

关于git - 如何将 git 中的子模块更新为该外部仓库中的 HEAD 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2277333/

相关文章:

git - git中 "ours"和 "theirs"的具体含义是什么?

git - 是否可以在 git 中链接目录?

c - 如何在 C Makefile 中使用外部库和头文件?

javascript - 在Android WebView中注入(inject)外部JS文件并调用

javascript - 从外部链接每 5 秒更改一次文本

linux - Git pull --all 在 osx/linux 上表现不同

git - Github 会计算通过 -no-ff merge (不是快进) merge 的分支的贡献吗?

version-control - 是否有图像版本控制系统?

version-control - 推荐用于托管许多独立补丁的 DVCS 机制

git - 为 merge 请求准备分支