【发布时间】:2018-09-18 12:21:16
【问题描述】:
我有一个使用 dep 和 vendor 目录的 golang 项目。
出于某种原因,我不得不修改其中一个供应商依赖项的代码。 此更改无法推送到上游存储库。
如何在不丢失更改的情况下不断更新我的 vendored 依赖项?
【问题讨论】:
-
你不能。这两种理想存在必然的冲突。您可以做的最好的事情是在更新依赖项后重新应用您的更改,手动解决任何冲突。
-
@Flimzy 谢谢你的回答,我想我已经知道了......
-
值得一提的是,可能有一些工具可以让您更轻松地完成这项任务。最简单的可能是只派生您的依赖项,然后在该存储库中处理任何合并冲突,而不是在您的
/vendor/文件夹中。这是否可行/容易取决于包的复杂性。还有其他补丁管理工具(我想到了被子)。 AFAIK,没有一个与 Go 生态系统干净地接口,但它可能会在其中插入一些东西。 -
@Flimzy 遗憾的是我不能分叉依赖项,因为我有另一个供应商的依赖项导入它......目前我将继续使用
git cherry-pick重新应用我的更改,看看如何它去 -
这也是我通常采用的方法。祝你好运。
标签: git go dependency-management vendor