版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_20032995/article/details/84502141
场景
当我们在开源项目中发现可以优化得更好的地方,我们会想着能将修改的代码提交并且merge到开源项目中;但是,在很多情况下,我们并没有push权限。
这时候,我们可以尝试
fork & pull request
这种操作来提交代码,下面讲述这种情况
fork & pull request
怎么做(实例)
仓库https://github.com/2liang/AutoBuildDocFromDB.git
假如现在发现有可以修改或者提交的代码,我们可以这样做
一、对仓库进行fork(因为我们没有权限push),克隆代码到本地
git clone https://github.com/2liang/AutoBuildDocFromDB.git
二、从master中拉取一个分支dev(本地)
git branch dev
git checkout dev
四、在该分支提交你的更改,然后提交
git commit -m "优化XXX"
五、在原来的push地址的基础上,再新增一个push地址,这个地址是你fork项目后的地址
git remote add myDev https://github.com/luck-cheng/AutoBuildDocFromDB.git
六、推送本地分支到自己fork的仓库(可以先做merge,再push或者在web端进行都可以)
git fetch origin
//这里是先本地merge然后再push的
git merge origin/dev
git push myDev dev
七、这样我们的fork库的dev分支包含了刚刚的commit(刚刚的更改),GitHub仓库页面有个“pull request”按钮,点击就可以create pull request。注意推送的来源和目的地(这里是要注意选择修改的),另外可以点击下面的标签file changed查看具体的变动,确认无误后填写pull request的标题和具体内容,最后点击create pull request
(按钮);
最后一步:能不能顺利merge进开源仓库,就随缘佛系了(要看权限管理员心情了)。