Git子模块:指定一个特定的SHA?

时间:2012-01-11 02:02:56

标签: git git-submodules

我在我的项目中引用了一个git子模块,现在需要在目标git repo中引用一个特定的SHA。

# .gitmodules
[submodule "vendor/plugins/ssl_requirement"]
  path = vendor/plugins/ssl_requirement
  url = git://github.com/retr0h/ssl_requirement.git

我想要的SHA是bc96ad96407a72a60e0542cf3b0cecc6ff9e278e

1 个答案:

答案 0 :(得分:29)

根据定义,子模块始终引用子项目中的特定SHA1。 SHA1不在.gitmodules文件中表示,而是表示为包含子模块的树对象中的条目。你在git中设置它的方法是cd进入子模块,检查你想要的SHA1,然后cd回到父回购并提交你的更改,这将显示就像一个改变了文件。

所以在你的情况下你可以做的是

cd vendor/plugins/ssl_requirement
git checkout bc96ad96407a72a60e0542cf3b0cecc6ff9e278e
cd ..
git add ssl_requirement
# commit whenever you're ready