如何在使用dep
和供应商目录时使用软件包的开发副本/克隆?供应商目录包含在主存储库中。
例如,我有一个forked包并用我自己的github替换它。我希望能够编辑代码,而不是每次更改包时git push
+ dep ensure
。
如果我在供应商目录中克隆了包,那么我将无法将该目录提交到主仓库中,因为它被视为一个单独的存储库。
我从包外面尝试了.gitignore
.git
目录。这种方法很有效,直到运行dep ensure
.git
目录为止。
答案 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 $*
这样,您仍然可以从您所托管的子项目中的版本控制操作中受益。