[英]How to work with a development vendor package managed by dep?
如何在使用dep
和供应商目录时使用包的开发副本/克隆? 供应商目录包含在主存储库中。
例如,我已经 fork 包并将其替换为我自己在 github 上的包。 我希望能够编辑代码,而不必为包的每次更改都git push
+ dep ensure
。
如果我在 vendor 目录中克隆包,我将无法将该目录提交到主存储库中,因为它被视为单独的存储库。
我尝试了一个技巧来从包外部.gitignore
.git
目录。 这运行良好,直到运行dep ensure
,其中.git
目录被破坏。
根据dep
docs ,目前没有内置的方法可以做到这一点。
他们还建议不要直接修改vendor
目录中的包,原因我发现:运行dep ensure
时它会被破坏。
他们的主要建议是手动从vendor/
目录中删除包,在常规$GOPATH
修改它,并在完成开发后运行dep ensure -update <pkg>
。
这比每次更改都推送要好得多,但仍然需要在完成开发工作时手动push
/ dep ensure
。
“忽略.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 $*
这样,您仍然可以从供应商子项目中的版本控制操作中受益。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.