我想这个问题也与您在Go
中使用fork的方式有关,我认为这没有很好的解决方案。
我正在维护产品的旧版本,因此我经常修复例如分支v0
,那么我当然想挑选可以将错误修复到我的master分支的提交。
当您可以访问git worktree
时,这种工作流程会更好,这使我可以同时签出master
和v0
。我现在的问题是我的master branch
工作树是在~/go/src/github.com/<company>/wt1_server
签出,而我的v0 branch
在~/go/src/github.com/company/server
签出。
现在,我的问题是master branch
的导入实际上是从v0 branch
导入代码,因为所有导入都指向该存储库,而不是相对的。
有人找到了解决这个问题的办法吗?
编辑:例如https://github.com/rogpeppe/govers之类的工具可以自动更新路径。但这将使得不可能在再次还原之前进行任何提交。一个很差的解决方法:)
编辑2:看来Go
模块可能是一个解决方案,因为它是该模块的相对路径-我认为我不能同时安装两个具有相同名称的模块。但是当我必须在某些特定的工作树中工作时,运行go install .
可能是一个好的解决方案