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

发布于 2024-12-26 05:24:57 字数 289 浏览 0 评论 0原文

我在项目中引用了 git 子模块,现在需要在目标 git 存储库中引用特定的 SHA。

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

我想要的 SHA 是 bc96ad96407a72a60e0542cf3b0cecc6ff9e278e 。

I'm referencing a git submodule in my project, and now need to reference a specific SHA in the target git repo.

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

The SHA I want is bc96ad96407a72a60e0542cf3b0cecc6ff9e278e.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

痴者 2025-01-02 05:24:57

根据定义,子模块始终引用子项目中的特定 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

Submodules, by definition, always reference particular SHA1 in the subproject. That SHA1 isn't expressed in the .gitmodules file, but is instead expressed as the entry in the tree object that contains the submodule. The way you set this in git is by cding into the submodule, checking out the SHA1 you want, then cding back to the parent repo and committing your change, which will show up just like a changed file.

So in your case what you can do is

cd vendor/plugins/ssl_requirement
git checkout bc96ad96407a72a60e0542cf3b0cecc6ff9e278e
cd ..
git add ssl_requirement
# commit whenever you're ready
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文