[英]How to ignore replace directive in go.mod
我在進行本地開發時使用“替換”語句。 所以我的 go.mod 看起來像這樣:
require (
gorm.io/gorm v1.21.11
github.com/mypackages/session v1.1.0
)
replace (
github.com/mypackages/session => ./../session
)
但是當我git commit
我的更改並將代碼部署到生產環境時,我不需要“替換”,所以我需要在每個git commit
上注釋這行替換代碼,然后取消注釋。 有沒有辦法忽略生產環境中的“替換”語句?
replace
在環境中不能被忽略,因為它在依賴解析時間使用,在構建之前,這是在生產中執行之前很久。 但是要回答根本問題,不,您不能“忽略”該指令。 如果它在那里,它就在那里。
雖然@Adrian 是正確的,因為在 Go 中無法實現這一點,但我認為這個問題與 Go 相關,而與 Git 相關。 您可以使用內容過濾器忽略文件的特定部分。 有關更多信息,請參閱此 SO 答案。
擁有一個本地版本的 mod 文件(例如 go.local.mod),然后你可以告訴 go 命令使用它:
go build -modfile=go.local.mod main.go
您可以編寫一個預提交掛鈎,它將檢測您的 go.mod 文件是否包含替換。
預提交掛鈎代碼 -> https://gist.github.com/MohitVachhani/e331321bb6f8c3e5e26b0cb4ab792c55
請通過此撥打 go,如果您有任何改進,請告訴我!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.