git - 如何更改 git 子模块的 HEAD

标签 git git-submodules

该项目有一个子模块,并指向该子模块的一个特定 SHA(例如 62726c)。

因此每次运行 git submodule update --init 时,子模块目录只显示该 SHA (62726c) 的更改。

最近我对子模块进行了更改并推送了更改 SHA (f81611),但如上所述,子模块的 HEAD 仍指向旧 SHA 62726c

最佳答案

当执行 git submodule update --init 时,您将子模块 check out 到项目注册的修订版,该修订版尚未更新,这就是为什么您总是看到它已恢复。

要更改 super 项目的子模块的修订版,请将子模块 checkout 到您想要的 SHA1:

git checkout f81611

在主项目中,您会看到子模块被列为正在修改 (git status)。您需要提交此修改,就好像子模块是一个普通文件一样:

git add <path-to-submodule>
git commit -m "Update submodule XX so that it does YY"

关于git - 如何更改 git 子模块的 HEAD,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25240634/

相关文章:

linux - 如何在本地更改子模块远程 url 必须提交这些更改

git - 如何更改我 fork 的 GitHub 项目?

ruby - 贡献 git 包的流程?

git 错误 : RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function

git submodule update --remote vs git pull

git - 服务器不允许请求未公布的对象

git - 在包含子模块的项目中 merge 时如何解决 'error: add_cacheinfo failed to refresh for path'

git - 多个 heroku 帐户

git - 如何让 git 停止跟踪文件的更改,同时将其保留在索引中?

linux - Git Smart HTTP推送权限失败