如何在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

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

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

参考链接:

 

--- EOF ---

  • 4
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值