解决它的一种方法是 Ivan Rave 和http://blog.campoy.cat/2014/03/github-and-go-forking-pull-requests-and.html提出的方法——分叉的方式。
另一种是解决golang行为。当 you 时go get
,golang 会以与存储库 URI 相同的名称来布置目录,这就是麻烦开始的地方。
相反,如果您发布自己的git clone
,则可以将您的存储库克隆到以原始存储库命名的路径上的文件系统上。
假设原始存储库在github.com/awsome-org/tool
并且您将其 fork 到github.com/awesome-you/tool
,您可以:
cd $GOPATH
mkdir -p {src,bin,pkg}
mkdir -p src/github.com/awesome-org/
cd src/github.com/awesome-org/
git clone git@github.com:awesome-you/tool.git # OR: git clone https://github.com/awesome-you/tool.git
cd tool/
go get ./...
golang非常乐意继续使用这个存储库,并且实际上并不关心某些上层目录的名称awesome-org
,而 git 远程是awesome-you
. 所有导入awesome-org
都通过您刚刚创建的目录进行解析,该目录是您的本地工作集。
更详细的内容,请参阅我的博文:在 GitHub 上分叉 Golang 存储库并管理导入路径
编辑:固定目录路径