如何使用dep管理的开发供应商包?

时间:2017-12-30 06:33:33

标签: git go govendor

如何在使用dep和供应商目录时使用软件包的开发副本/克隆?供应商目录包含在主存储库中。

例如,我有一个forked包并用我自己的github替换它。我希望能够编辑代码,而不是每次更改包时git push + dep ensure

如果我在供应商目录中克隆了包,那么我将无法将该目录提交到主仓库中,因为它被视为一个单独的存储库。

我从包外面尝试了.gitignore .git目录。这种方法很有效,直到运行dep ensure .git目录为止。

2 个答案:

答案 0 :(得分:1)

根据dep docs,没有内置的方法可以做到这一点。

他们还建议不要直接修改vendor目录中的包,原因是我发现:运行dep ensure时它会被破坏。

他们的主要建议是从vendor/目录手动删除软件包,在常规$GOPATH中修改它,并在完成开发后运行dep ensure -update <pkg>

这比推送每项更改要好得多,但在完成开发工作时仍需要手动push / dep ensure

答案 1 :(得分:0)

“忽略.git”的替代方法是将.git文件夹保留在其他地方! (远离你的Go项目)

每当你需要在vendored子项目中执行git命令时,你需要使用git命令的别名,它将是:

alias gg='git --git-dir=/path/to/elsewhere/.git --work-tree=/path/to/vendored/subproject'
# Windows
doskey gg=git --git-dir=C:\path\to\elsewhere\.git --work-tree=C:\path\to\vendored\subproject $*

这样,您仍然可以从您所托管的子项目中的版本控制操作中受益。