摘要
github
上有很多优秀的开源项目,很多时候我们不仅仅只是满足于使用,同时也想一起参与开源项目的开发,贡献自己的代码。今天这篇文章就给大家介绍一下如何在 github
上提交 PR
,让我们一起为开源社区做贡献。
一、fork主仓库项目到个人仓库
在github
上找到你想要参与的开源项目,然后点击右上角的fork
按钮,就会在你自己的代码仓库中创建一个此开源项目的副本,后续所有代码提交都提交到此仓库,这样就不必担心未经审核的代码弄乱了原始仓库。
完成了fork步骤后,会在自己的代码仓库中创建一个你想参与的开源项目的副本。
二、克隆新仓库到本地
执行gitclone
命令,推荐使用ssh的形式。
git clone git@github.com/zhuangxiaoyan512/data.git
执行gitclone
命令,推荐使用https的形式。
git clone https://github.com/zhuangxiaoyan512/data.git
三、关联远端仓库
#进入到项目中,在有.git文件的目录下 连接到远端仓库地址
git remote add upstream https://github.com/zhuangxiaoyan512/data.git(主仓库的URL)
#禁止向远端主仓库进行的代码提交
git remote set-url --push upstream no_push
#查看本地关联的代码库
git remote -v
四、创建自己branch
#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(个人远端分支)
六、个人仓库中提交PR
到这里整个流程就结束了,下面就是耐心等待matainer的审核即可。
七、当PR有冲突时候
# 拉取远端主仓库 拉取最新的代码到本地
git fetch upstream
八、进行代码rebase
git rebase vxrail-cr(本地的分支) 就是将vxrail-cr(已经是最新的)合并到你当下分支(topic/jiale_xiong/data/vxp568)
#这个时候就会出现有conflict问题
******************************
#查看有哪些文件有冲突
git diff
#解决好冲突
******************************
九、在重新提交PR
#重新提交刚刚解决冲突的文件
git add filename1 filename2
#提交commit 信息 记得这几是需要需改符合你公司的要求或者是开源社区的要求
git commit --amend
#推送到本地同时提交PR
git push -f origin topic/jiale_xiong/data/vxp568(本地分支):vxrail-cr(个人远端分支)
十、 pull request 命令集合
#首先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(个人远端分支)
# 拉取远端主仓库
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(个人远端分支)