如何忽略 go.mod 中的替换指令

sn0*_*0rk 2 go go-modules

我在进行本地开发时使用“替换”语句。所以我的 go.mod 看起来像这样:

require (
 gorm.io/gorm v1.21.11
 github.com/mypackages/session v1.1.0
)

replace (
 github.com/mypackages/session => ./../session
)
Run Code Online (Sandbox Code Playgroud)

但是当git commit我更改并将代码部署到生产时,我不需要“替换” ,所以我需要在每个替换代码上注释这行替换代码,git commit然后取消注释。有没有办法忽略生产环境中的“替换”语句?

Cla*_*ley 6

虽然 @Adrian 是正确的,因为在 Go 中没有办法实现这一点,但我认为这个问题与 Go 无关,而与 Git 无关。您可以使用内容过滤器忽略文件的特定部分。请参阅此 SO 答案以获取更多信息。


Adr*_*ian 5

replace环境中不能被忽略,因为它在依赖解析时使用,它出现在构建之前,在它在生产中执行之前很久。但是要回答根本问题,不,您不能“忽略”该指令。如果它在那里,它就在那里。