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

标签 git git-submodules

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

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

如果我将 B 添加为 A 的子模块并进行自己的一组更改并提交给 B,我仍然可以获得 B 的第三方更新。但是,如果我尝试将 A 克隆到另一台计算机,B 最终会失败由于我对 B 所做的提交不是“公开的”,因此状态很糟糕。

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

最佳答案

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

这还假设您的 fork 存储库可以被您想要 checkout A 的任何其他计算机访问。

关于修改第三方代码时的 Git 子模块工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8800068/

相关文章:

git pull from clean 目录有 merge 冲突

git - Heroku 可以在部署时忽略 git 子模块吗?

git - 从 azure pipeline check out git 子模块

wordpress - Git 子模块更新过程在尝试将 Azure DevOps 连接到 siteground 服务器时需要密码

git - 如果子模块未初始化,如何解决 git 子模块冲突

git - 我可以从 git 中检索给定日期的文件版本吗?

git - 如何使用 Git 检索与 TFS 2013 中的构建关联的变更集?

git - 用什么方式和git merge ?

git - 我已经失去了我的主分支和根据 GIT,我的头(虽然我可以告诉它)。我怎样才能让他们回来?

git子模块不在子模块中 pull 文件