如何fork开源项目并提交PR—实战fork项目是管理仓库的副本,用于更改项目而不影响原始仓库,可以通过从原始仓库拉取,
fork
fork项目是管理仓库的副本,用于更改项目而不影响原始仓库,可以通过从原始仓库拉取,或者提交更新到原始仓库。
1、在开源仓库fork一个开源项目
开源仓库:github.com,gitee.com
本人选择一个开源的压测工具仓库github.com/rakyll/hey,…
2、本地开发
2.1、将仓库clone到本地
git clone git@github.com:oyjjpp/hey.git
2.2、切一个新的开发分支
git branch -b develop
。。。做一些贡献代码 。。。做一些贡献代码 当前项目一般只有自己仓库的源,当fork开源仓库的源码时,如果要提交PR,首先需要将上游仓库的源配置到本地代码
2.3、将分支push到远程仓库
$ git push origin develop
Counting objects: 3, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 288 bytes | 0 bytes/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
To git@github.com:oyjjpp/hey.git
f3676ef..d7a9529 develop -> develop
3、为fork项目配置远程仓库
当前项目一般只有自己仓库的源,当fork开源仓库的源码时,如果要提交PR,首先需要将上游仓库的源配置到本地版本控制中,这样既可以提交本地仓库代码到上游仓库,同样可以拉取最新上游仓库代码到本地。
3.1、列出当前项目配置的远程仓库
$ git remote -v
origin git@github.com:oyjjpp/hey.git (fetch)
origin git@github.com:oyjjpp/hey.git (push)
3.2、指定fork项目的新远程仓库
git remote add upstream https://github.com/rakyll/hey.git
3.2、验证新的仓库
$ git remote -v
origin git@github.com:oyjjpp/hey.git (fetch)
origin git@github.com:oyjjpp/hey.git (push)
upstream https://github.com/rakyll/hey.git (fetch)
upstream https://github.com/rakyll/hey.git (push)
3.3、从上游仓库获取最新的代码
ouyangjun@DESKTOP-FV7FFHO MINGW64 /d/golang/hey (master)
$ git fetch upstream
remote: Enumerating objects: 4, done.
remote: Counting objects: 100% (4/4), done.
remote: Total 5 (delta 4), reused 4 (delta 4), pack-reused 1
Unpacking objects: 100% (5/5), done.
From https://github.com/rakyll/hey
* [new branch] master -> upstream/master
* [new tag] v0.1.4 -> v0.1.4
3.4、将上游仓库代码merge开发的分支
git merge upstream/master
4、提交PR
指定好源码的分支和自己仓库的分支,然后创建PR,进行提交,接下来就是等待主创团队的同学帮忙合并PR了
参考
转载自:https://juejin.cn/post/6894990204596125709