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

问题描述 投票:2回答:2

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

例如,我有分叉包,并用我自己的github替换它。我想能够编辑代码,而不是每次更改包时都需要git push + dep ensure

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

我从包外面尝试了.gitignore .git目录的技巧。这一点很有效,直到dep ensure运行,其中.git目录被核实。

git go govendor
2个回答
1
投票

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

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

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

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


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 $*

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

© www.soinside.com 2019 - 2024. All rights reserved.