修改第三方代码时的 Git 子模块工作流程

发布于 2024-12-26 01:26:12 字数 317 浏览 0 评论 0原文

因此,我有一个项目 A ,其第三方依赖项 B 位于其他服务器上。

如果我将 B 添加为 A 的子模块,那么我可以使用标准子模块工作流程轻松获取对 B 的第三方更改。此外,我可以将 A 克隆到另一台机器,并使 B 处于我期望的确切状态。

如果我将 B 添加为 A 的子模块并进行自己的一组更改并提交给 B,我仍然可以获得 B 的第三方更新。但是,如果我尝试将 A 克隆到另一台机器,B 将最终陷入困境声明,因为我对 B 所做的承诺不是“公开的”。

完成第二个场景的良好工作流程是什么?也就是说,能够在不牺牲 git 分布式特性的情况下使用、修改和更新存储库中的第三方子模块?

So I have a project A with a third party dependency B which lives on some other server.

If I add B as a submodule of A, then I can easily get the third party changes to B using the standard submodule workflow. Furthermore, I can clone A to another machine and have B in the exact state that I'd expect.

If I add B as a submodule of A and make my own set of changes and commits to B, I can still get third party updates to B. However, if I try to clone A to another machine, B will end up in a bad state since the commits I made to B aren't 'public'.

What's a good workflow to accomplish this second scenario? Namely, being able to use, modify, and update third party submodules from a repository without sacrificing the distributed nature of git?

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

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

发布评论

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

评论(1

风筝有风,海豚有海 2025-01-02 01:26:12

B。将您的 fork 包含为 A 的子模块。向上游拉动更改是一个两步过程;将更改从 B 拉入您的分支,更新 A 中的子模块。

这还假设您的分叉存储库可以被您想要签出 A 的任何其他机器访问。

Fork B. Include your fork as a submodule of A. Pulling upstream changes is then a two step process; pull the change from B into your fork, update your submodule in A.

This also assumes that your fork repository will be accessible to whatever other machine you want to checkout A on.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文