我想这个问题也与你如何使用 forks in 有一点关系Go
,我认为没有一个好的解决方案。
我正在维护产品的旧版本,所以我经常修复例如分支中的错误v0
,然后我当然想挑选修复错误的提交到我的主分支中。
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 .
但是当我必须在某些特定的工作树中工作时运行它可能是一个不错的解决方案