如何在github上贡献自己的代码

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

假设 pythonzhichan/DailyQuestion 就是我们将要给它贡献代码的开源项目,如何在github上贡献自己的代码_第1张图片

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

二:Fork项目克隆到本地

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

git clone [email protected]:thezenofpython/DailyQuestion.git

如何在github上贡献自己的代码_第2张图片

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

如何在github上贡献自己的代码_第3张图片

三:配置上游项目地址

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

切换到项目目录:

cd DailyQuestion

假设原项目是 [email protected]:pythonzhichan/DailyQuestion.git 

git remote add upstream [email protected]:pythonzhichan/DailyQuestion.git

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

四:创建一个 Pull Request

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

如何在github上贡献自己的代码_第4张图片

新建一个 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 ,一图胜千言。

如何在github上贡献自己的代码_第5张图片

  • master:其实就是你的本地(Local)项目(在你自己电脑里面)
  • origin:是你GitHub上Fork的远程项目(托管在GitHub上项目,属于你自己的)
  • upstream: 别人的开源项目,origin项目最开始就是从那fork过来的。(托管在GitHub上项目,属于别人的)

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

参考链接:

  • windows下GitHub的SSH key配置
  • Mac和Linux配置SSH key

 

--- EOF ---

你可能感兴趣的:(git)