diff --git "a/\347\254\254\344\270\211\351\203\250\345\210\206\342\200\224\342\200\224\345\260\235\350\257\225\345\217\202\344\270\216\345\274\200\346\272\220/\345\217\257\344\273\245\347\224\250\345\223\252\344\272\233\346\226\271\345\274\217\345\217\202\344\270\216\345\274\200\346\272\220.md" "b/\347\254\254\344\270\211\351\203\250\345\210\206\342\200\224\342\200\224\345\260\235\350\257\225\345\217\202\344\270\216\345\274\200\346\272\220/\345\217\257\344\273\245\347\224\250\345\223\252\344\272\233\346\226\271\345\274\217\345\217\202\344\270\216\345\274\200\346\272\220.md" index 73e14f96cb1ec1f3ea948d306bb88b8d95141097..b768eacf8067741b3f6fd8fc086a9328d7c6699a 100644 --- "a/\347\254\254\344\270\211\351\203\250\345\210\206\342\200\224\342\200\224\345\260\235\350\257\225\345\217\202\344\270\216\345\274\200\346\272\220/\345\217\257\344\273\245\347\224\250\345\223\252\344\272\233\346\226\271\345\274\217\345\217\202\344\270\216\345\274\200\346\272\220.md" +++ "b/\347\254\254\344\270\211\351\203\250\345\210\206\342\200\224\342\200\224\345\260\235\350\257\225\345\217\202\344\270\216\345\274\200\346\272\220/\345\217\257\344\273\245\347\224\250\345\223\252\344\272\233\346\226\271\345\274\217\345\217\202\344\270\216\345\274\200\346\272\220.md" @@ -68,6 +68,113 @@ GitHub 采用 Pull Requests 方式,可以快速的参与到开源项目中。 Gitee 创新采用了 Gitee Pull Request Lite,不需要 Fork ,直接可以在网页上面进行代码的提交,这种方式使得参与开源项目更加的便捷,尤其适合仅需少量的修改就可以完成的场景。当然,Gitee 也完全支持传统的 fork-update-pr-merge 提交流程,对于大量的代码修改,或者多个模块的联动修改,更建议采用这种方式,因为可以更好地通过测试用例来验证代码的影响范围和正确性,保证所提交的代码具有一定的质量水准。 + +# 参与Git开源项目的方式 + +一、首先需要在github上注册账号并登陆。 + +  二、安装git,到github官网下载安装包。 + +    在这里我用的是github for windows。安装好后会有一个图形界面和一个Git Shell。 + +  三、为账号添加添加ssh key + +    clone项目到本地不需要身份认证,但要push修改到github上需要身份验证。push修改时走ssh协议,所以这里需要将我们的公钥添加到github账号中。这里就是ssh实现无密码登陆,或者所谓的公钥登陆,就是采用了私钥确定唯一身份的原理。 + +    1、生成密钥对。运行Git Shell执行以下命令: + +      ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/f4faa98385af0504eab77a32f8abb3df.png "在这里输入图片标题") + +      一直按 enter键生成密钥对,最终显示这个画面: + +      ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/4e3dcffee781cc1083f6a488b2956dbb.png "在这里输入图片标题") + +      这时在你的家目录下的.ssh目录下生成了id_rsa、id_rsa.pub两个秘钥文件,我的是windows,所以在C:\Users\Administrator\.ssh目录下。 + +    2、添加公钥到github上 + +      点击github上的设置按钮![输入图片说明](https://img-blog.csdnimg.cn/img_convert/cae12fa96e49a26aaea4ec87a57d8af6.png "在这里输入图片标题")进入如下界面,然后点击SSH keys + +       + +      点击 Ad SSH key + ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/2ca975b8145d2322bb74e239bd3812e8.png "在这里输入图片标题") + +打开添加公钥页面: + +       ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/5d3a8c73dab2a4fee904656df5a281e1.png "在这里输入图片标题") + +     打开生成的id_rsa.pub文件,复制内容,注意不要变动其内容。然后粘贴到上面的Key输入框里,Title输入框可以随便起个名字。然后点击 Add key即添加完成。 + +   3、在本地使用刚刚生成的私钥,执行如下命令: +    ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/f317c91a3be3459e32a16a02d3f9241f.png "在这里输入图片标题") + +  四、fork你想参与的开源项目 +     浏览git上的开源项目,然后点击fork, + +    ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/d744cc8b893ed28fe7d3485634f5a578.png "在这里输入图片标题") + +    这时就跳转到了你的账号下,此项目就是你账号下的一个项目了 + +    ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/ed3fa838537c1b68283eec796d7ed9da.png "在这里输入图片标题") + +    fork就相当于把别人的项目克隆到自己的账号下一份,以后你的修改都应是提交到你自己github账号下的这个项目中,你是没有权限直接push到原作者账号下的项目中的 + +  五、clone项目到本地 + +    1、复制项目clone地址 +      注意是clone自己账号下的项目地址,不是原作者的,原作者的你虽然也可以clone到本地,但是你是没push权限的。还要注意这里咱们使用ssh协议,所以要选择ssh类型的地址,如图: + +      ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/ec1510bab8dbec7bb1efaf6b8d344b66.png "在这里输入图片标题") + +    2、clone 到本地, +       在命令行下 输入 git clone 并将复制的地址添加上,然后执行 + +      ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/66aad7a5a58f924407d2e4887e50e635.png "在这里输入图片标题") + +      然后就可以cd进项目目录了 + +  六、将项目原地址添加为远程仓库 +    复制原作者的项目地址,添加为自己的一个远程仓库,用来实时将原项目的修改更新到咱们本地并合并。注意也是复制ssh协议类型的地址哦 + +    ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/aa49f68b5c2bbd8360fb4b282b9f26f4.png "在这里输入图片标题") + +    使用 git remote -v可以看到我们有两个仓库一个origin,咱们自己的github仓库;一个upstream,原作者的远程仓库。当然也可以不用upstream这个名字。 + +  七、创建branch,用于添加自己的修改 +    这只是一个约定成俗的方式,当然你也可以在master上添加修改,创建新的branch添加自己的修改的好处是,你可以同时添加多个修改,在一个修改还没有被原作者merge时,你可以用master创建新的branch继续你的其它修改。 + +    在这里我们在新添加的分支上修改:执行如下命令 + +      git branch test //创建你test分支 + +      git checkout test//切换到test分支 + +    然后就可以添加我们的修改了 + +  八、将修改push到我们的github上 +    由于我们的github上还没有test分支,所以我们得把命令写全了:git push origin test:test + +  九、pull request +    你的修改已经push到了你的github下了,但是你要向原作者请求合并到原项目中,如果原作者合并了,也就意味着你是此项目的贡献者了。 + +    到你的github上点击如下按钮 + +    ![输入图片说明](https://img-blog.csdnimg.cn/img_convert/bd79739c7ba62f635ce8b1cc491c7c8a.png "在这里输入图片标题") + +    当然你也可以选择test分支,,然后点击项目右边的创建一个pull request。 + +    提交完pull request,原作者就会看到你的合并请求,采不采纳就是他的事了^_^。 + + + +注意事项 +  1、clone时一定要注意选择ssh协议的链接。否则可能导致clone失败,或者后续push失败 + +  2、将公钥添加到github后,一定要更新自己当前的私钥(命令:ssh-add ~/.ssh/id_rsa),否则会push失败 + + + ``` 这里需补充有关 Gitee 流程的内容和相关链接方便大家查看。 ```