[英]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.