我在进行本地开发时使用了“replace”语句,所以我的go.mod如下所示:
require (
gorm.io/gorm v1.21.11
github.com/mypackages/session v1.1.0
)
replace (
github.com/mypackages/session => ./../session
)
但是当我git commit
我的更改并将代码部署到生产环境中时,我不需要“replace”,所以我需要在每个git commit
上注解这行replace代码,然后取消注解它。有没有办法在生产环境中忽略“replace”语句?
4条答案
按热度按时间34gzjxbg1#
虽然@Adrian说的对,在Go语言中没有办法做到这一点,但我认为这个问题与Go语言无关,而与Git有关。您可以使用内容过滤器忽略文件的特定部分,更多信息请参见this SO answer。
ubof19bj2#
replace
在 environment 中不能被忽略,因为它是在依赖关系解析时使用的,依赖关系解析在构建之前,构建之前很久就在生产中执行了。但是要回答根本问题,不,你不能“忽略”该指令。如果它在那里,它就在那里。olhwl3o23#
有一个mod文件的本地版本(例如go.local.mod),然后你可以告诉go命令使用它:
yebdmbv44#
你可以编写一个提交前钩子,它会检测你的go.mod文件是否包含replace。
预提交挂钩代码-〉https://gist.github.com/MohitVachhani/e331321bb6f8c3e5e26b0cb4ab792c55
请通过这一点,让我知道,如果你有任何改进!