Powered by Typecho)))
Optimized by EAimTY
项目开发的一般流程是先fork项目,然后基于自己fork的项目开发,最后通过提交PR将自己的代码merge到上游。 这里会涉及到两个:上游仓库和自己fork的仓库,它们之间最终通过PR关联起来。 但是,由于Golang特定的GOPATH依赖,导致这种方式针对于Golang项目会有些问题。
举个例子,来演示整个过程。为描述清晰、方便,有如下约定:
上游项目为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。
随着docker-compose版本3及以上版本的出现,volumes_from指令即将被移除。对于本地开发来说挂载本地目录到容器是一个很重要的需求,那么,现在你可以使用host bind方式挂载目录或定义存储卷
web_app_cli:
image: code4hire/dev-images:php-7.2-cli
hostname: "web_app_cli"
working_dir: /application
volumes:
- ./web-app/application:/application