golang项目fork的问题

问题

4月份换了一份工作,新工作是使用golang开发。当我在代码仓库中fork了一份代码准备在自己的repo中开发时,发现golang的fork的问题。

源repo:example.com/group/tool.git
fork后: example.com/my/tool.git

于是我使用 go get example.com/my/tool 来下载我的repo准备工作时发现,GOPATH下面依然有group/tool。原因当然是代码中import包的时候都是这么使用的:

import "example/group/tool/module"

于是我如果要正常运行的话就得把上面改成:

import "example/my/tool/module"

然后开发完做pull request前又得改回来。这显然不是正确的工作方式。

解决

有这个问题之后上网搜了一下,显然不是只有我一个人有这个问题。这篇文章这种情况应该怎么做,简单总结一下。

1. fork repo

先fork,得到一个自己的repo : example.com/my/tool.git

2. 下载源repo 代码

go get  example.com/group/tool"

这时候你的GOPATH中已经把所有的代码和依赖都下载下来了。

3. 添加remote

进入项目的目录中,为git repo添加remote

cd $GOPATH/src/example.com/group/tool
git remote add fork example.com/my/tool.git

4. push

在前面步骤做完之后,就可以进行代码修改了,修改之后按照下面的方式push:

git push fork

参考

  1. http://blog.campoy.cat/2014/03/github-and-go-forking-pull-requests-and.html
  2. https://splice.com/blog/contributing-open-source-git-repositories-go/
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容