Techyou labs
真正的爱应该超越生命的长度,心灵的宽度,灵魂的深度
常用标签
您正在查看:标签 gopath 下的文章

项目开发的一般流程是先fork项目,然后基于自己fork的项目开发,最后通过提交PR将自己的代码merge到上游。 这里会涉及到两个:上游仓库和自己fork的仓库,它们之间最终通过PR关联起来。 但是,由于Golang特定的GOPATH依赖,导致这种方式针对于Golang项目会有些问题。

常见开发流程:

  1. 将项目fork自己的账户下;
  2. Clone自己fork的项目到本地,并进行开发;
  3. 将修改的代码push到自己fork的项目中;
  4. 从fork的项目中为自己的代码创建PR;
  5. 等这个PR被merge后,自己的代码才能进入上游项目。

举个例子,来演示整个过程。为描述清晰、方便,有如下约定:

上游项目为org/repo
fork项目为user/repo

按照常规的Git开发流程,在本地clone的fork项目中直接go build,会存在依赖问题:

Fork出来的项目在GOPATH中的路径发生了改变,但是代码中import的路径没有改变,所以没有使用fork项目中的package。

即使构建成功,但是真正使用也不是fork项目中修改的代码 有可能GOPATH中已经存在org/repo,所以按照上面的方式构建,不会提示错误。但是如果在user/repo中修改的代码,是无法生效的。 因为代码中引用的是org/repo的package,不是user/repo中修改过的package。