作为GitHub初级用户,如何向GitHub贡献代码

By liuzhijun, 2017-11-01, 分类: 技术

github

Python之禅和他朋友们圈里发现有一部分人还不知道如何使用GitHub,贡献代码,这篇文章整理了一个完整的步骤,手把手交你如何操作。

一:先从GitHub Fork 一份代码到自己的帐号中

假设 pythonzhichan/DailyQuestion 就是我们将要给它贡献代码的开源项目, github1

Fork完成后,可以在自己的 repositories 列表中看到该项目。

二:Fork项目克隆到本地

把Fork后的项目clone到本地,注意这里选择的是 “Use SSH”,而不是 “Use HTTPS”,或者在你push代码的时候每次都要输入GitHub帐号密码,而使用 SSH 只要你配置好了 SSH keys,就不需要每次输入帐号密码了。(关于如何配置SSH-Key参考文末链接)

git clone git@github.com:thezenofpython/DailyQuestion.git

github3

项目成功clone下来,检查是否有了DailyQuestion目录

github4

三:配置上游项目地址

配置上游项目地址的目的将来如果原来那个项目pythonzhichan/DailyQuestion有代码更新时,我们需要把它最新代码合并到我自己的Fork的项目中,这样才能保持代码同步,否则你的项目永远停留在Fork时候的版本。

切换到项目目录:

cd DailyQuestion

假设原项目是 git@github.com:pythonzhichan/DailyQuestion.git

git remote add upstream git@github.com:pythonzhichan/DailyQuestion.git

这里的 upstream 就是我们上游项目地址的别名,待会儿就是从这个项目中去拉最新的代码。

四:创建一个 Pull Request

现在假设你在本地项目中修改了代码,新增了文件,当我们把代码push到Github之后,你就可以在GitHub发起一个Pull Request了,告知原项目,我修复了一些Bug,更新了某些特性,请把我的代码合并过去吧。

github5.jpg

新建一个 Pull Request,如果GitHub发现你的代码和原项目差异,那么就可以成功 Create Pull Request。这样原项目的负责人就可以收到你的Pull Reuqest了。然后就等着他审核、合并代码,审核通过之后,你的代码将被正式合并到他的原项目中去。 df

五:合并开源项目最新代码到自己的Fork项目中

1、获取上游项目更新

git fetch upstream

2、合并到本地分支

git merge upstream/master

3、提交推送

git push origin master

这样你的代码就和原项目的代码保持同步了。

总结

这里出现了好几个名词,包括 origin, master, upstream ,一图胜千言。

github7.png

在仔细看看这三者之间的关系(箭头指向),fetch 命令可以直接把开源项目代码抓到本地来再合并(merge),push 命令是把本地代码推送到远程GitHub上自己的那个Fork项目中去。如果要把自己的代码合并到开源项目中去,就需要在GitHub中发起 Pull Request,再由开源项目负责人把你代码进行合并。

参考链接:


关注公众号「Python之禅」(id:vttalk)获取最新文章 python之禅