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

Zub*_*bin 11 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
Run Code Online (Sandbox Code Playgroud)

我想要的SHA是bc96ad96407a72a60e0542cf3b0cecc6ff9e278e.

Lil*_*ard 33

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

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

cd vendor/plugins/ssl_requirement
git checkout bc96ad96407a72a60e0542cf3b0cecc6ff9e278e
cd ..
git add ssl_requirement
# commit whenever you're ready
Run Code Online (Sandbox Code Playgroud)

  • +1;这几乎正​​是我刚刚写的内容。请注意,如果在提交之前最后一次从源获取子模块,您可能必须在子模块中运行“git fetch”才能获取它! (2认同)