git - 如何使用本地 git checkout 进行变更跟踪
问题描述
我遇到了以下挑战:
在开发代码时,我还想并行开发一个依赖项(micromdm/scep)并使用 git 跟踪更改。
我的代码像这样导入库:
import(
...
sscepclient "github.com/micromdm/scep/v2/client"
"github.com/micromdm/scep/v2/cryptoutil/x509util"
"github.com/micromdm/scep/v2/scep"
)
为了指向模块的本地检查版本,我在 go.mod 中替换了模块:
require (
...
github.com/micromdm/scep/v2 v2.0.0
)
replace github.com/micromdm/scep/v2 => /home/pi/go/scep
我确实对 scep 模块的存储库进行了 git clone,并且可以在 replace 指令指定的目录中找到文件。
但是当我尝试运行我的代码时,我得到一个错误
../../scep/server/csrsigner.go:8:2: no required module provides package github.com/micromdm/scep/v2/scep; to add it:
go get github.com/micromdm/scep/v2/scep
如果我确实按照要求获取依赖项,则会收到错误消息
go get: module github.com/micromdm/scep/v2@upgrade found (v2.0.0, replaced by /home/pi/go/scep), but does not contain package github.com/micromdm/scep/v2/scep
我还尝试在依赖模块的 go.mod 本身中添加替换语句,因为该模块还有几个直接指向 scep 模块的 require 语句,但没有成功。
据我了解,GO 无法找到模块(显然),但老实说,依赖项的处理确实让我感到困惑。根据我在互联网上的发现,我了解到应该可以通过使用 replace 指令来开发本地签出的存储库。如果有人能对此有所了解,我会很高兴。谢谢!
解决方案
检查您是否定义了模块版本(v2)
module github.com/micromdm/scep/v2
@/home/pi/go/scep/go.mod
将模块的路径更改为相对路径,在这种情况下,它可以工作。
更新1:我看到你做了,但我想到了唯一的选择。
更新2:找到了一个小解决方案。
推荐阅读
- javascript - 处理来自 JSON 的 POST 数组对象,避免错误 ECONNREFUSED 套接字挂起
- vb.net - 如何在记事本文件中编辑文本框?
- html - 视频 z-index 变换旋转异常行为
- compilation - 如何编译带有额外代码洞穴的 C/C++ 程序?
- syntax - (让(下一个(f猜测))vs(让((下一个(f猜测)))
- javascript - iFrame onclick 按钮在新选项卡中打开并显示结果
- ios - 如何检查是否在 iOS 13 中打开了 Prefer Cross-Fade Transitions?
- rest - “www.googleapis.com”响应最近发生了变化
- apache-spark - 在 spark thrift server 中运行 sql 时控制执行器的数量
- php - 我的 INSERT 准备好的语句正在使用 PHP PDO 制作多条记录