【开源社区】如何提交你的Pull Request
1、摘要
github上有很多优秀的开源项目,很多时候我们不仅仅只是满足于使用,同时也想一起参与开源项目的开发,贡献自己的代码。今天这篇文章就给大家介绍一下如何在 github 上提交 PR,让我们一起为开源社区做贡献。
2、fork主仓库项目到个人仓库
在github上找到你想要参与的开源项目,然后点击右上角的fork 按钮,就会在你自己的代码仓库中创建一个此开源项目的副本,后续所有代码提交都提交到你自己的仓库,这样就不必担心未经审核的代码弄乱了原始仓库。

完成了fork步骤后,会在自己的代码仓库中创建一个你想参与的开源项目的副本。

3、克隆新仓库到本地
执行gitclone 命令,推荐使用https的形式。
1
| git clone https://github.com/zhuangxiaoyan512/data.git
|
执行gitclone 命令,不推荐使用ssh的形式。
1
| git clone git@github.com/zhuangxiaoyan512/data.git
|
4、关联远端仓库
1 2 3 4 5 6 7 8
| # 进入到项目中,在有 .git 文件的目录下连接到远端仓库地址 git remote add upstream https://github.com/zhuangxiaoyan512/data.git(主仓库的URL)
# 禁止向远端主仓库进行代码提交 git remote set-url --push upstream no_push
# 查看本地关联的代码库 git remote -v
|
5、创建自己的branch
1 2 3 4 5 6 7 8
| #checkout你的开发分支 git checkout vxrail-cr #在vxrail-cr分支上建立自己的分支的 git checkout -b topic/jiale_xiong/data/vxp568 #查看的当时分支是否你自己的分支 git branch
|

6、修改文件后提交
1 2 3 4 5 6 7 8 9 10 11
| #查看那些文件修改了 git status #提交好修改的文件大本地仓库 git add filename1 filename2 #提交comit 信息(这个是作为代码提交的检查的 符合你们公司的开发规范) git commit --amend (git commit -m "公司的规范") #推送到本地同时提交PR git push -f origin topic/jiale_xiong/data/vxp568(本地分支):vxrail-cr(个人远端分支)
|

7、个人仓库中提交PR


到这里整个流程就结束了,下面就是耐心等待matainer的审核即可。

8、当PR有冲突时候
1 2
| # 拉取远端主仓库 拉取最新的代码到本地 git fetch upstream
|

9、进行代码rebase
1 2 3 4 5 6 7 8 9 10 11 12 13
| git rebase vxrail-cr(本地的分支) 就是将vxrail-cr(已经是最新的)合并到你当下分支(topic/jiale_xiong/data/vxp568) #这个时候就会出现有conflict问题 ****************************** #查看有哪些文件有冲突 git diff #解决好冲突 ******************************
|

10、再重新提交PR
1 2 3 4 5 6 7 8
| #重新提交刚刚解决冲突的文件 git add filename1 filename2 #提交commit 信息 记得这几是需要需改符合你公司的要求或者是开源社区的要求 git commit --amend #推送到本地同时提交PR git push -f origin topic/jiale_xiong/data/vxp568(本地分支):vxrail-cr(个人远端分支)
|

11、删除无用的分支
创建分支是为了完成一些特定目标,目标完成之后,这些分支就没必要继续存在了,可以删除。
1
| git branch -d [Branch Name]
|
github上的无用分支也可以删除
1
| git push origin --delete [Branch Name]
|
12、pull request命令集合
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
| #首先fork公司和开源代码仓库 git fork https://github.com/zhuangxiaoyan512/data.git(主仓库的URL) #在将你的个人远端仓库的clone到你的本地 git clone git@github.com:2462612540/data.git(个人仓库URL) #进入到项目中,在有.git文件的目录下 连接到远端仓库地址 git remote add upstream https://github.com/zhuangxiaoyan512/data.git(主仓库的URL) #禁止向远端主仓库进行的代码提交 git remote set-url --push upstream no_push #查看本地关联的代码库 git remote -v #checkout你的开发分支 git checkout vxrail-cr #在vxrail-cr分支上建立自己的分支的 git checkout -b topic/jiale_xiong/data/vxp568 #查看的当时分支是否你自己的分支 git branch #然后在进行的你开发 ***************** #查看那些文件修改了 git status #提交好修改的文件大本地仓库 git add filename1 filename2 #提交comit 信息(这个是作为代码提交的检查的 符合你们公司的开发规范) git commit --amend (git commit -m "公司的规范") #推送到本地同时提交PR git push -f origin topic/jiale_xiong/data/vxp568(本地分支):vxrail-cr(个人远端分支)
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
| # 拉取远端主仓库 git fetch upstream #进行合并操作(可以使用rebase 和merege两种操作)此时你在topic/jiale_xiong/data/vxp568下将需要rebase或者是merege的分支 git rebase vxrail-cr(本地的分支) 就是将vxrail-cr(已经是最新的)合并到你当下分支(topic/jiale_xiong/data/vxp568) #这个时候就会出现有conflict问题 ****************************** #查看有哪些文件有冲突 git diff #解决好冲突 ****************************** #重新提交刚刚解决冲突的文件 git add filename1 filename2 #提交commit 信息 记得这几是需要需改符合你公司的要求或者是开源社区的要求 git commit --amend #推送到本地同时提交PR git push -f origin topic/jiale_xiong/data/vxp568(本地分支):vxrail-cr(个人远端分支)
|