专栏首页linux百科小宇宙如何在GitHub上传项目贡献代码

如何在GitHub上传项目贡献代码

本文献给对Git很迷茫的新手,注意是新手,但至少会点基本操作,有点基本概念的新手,我不会从怎么用GitHub和Git是什么开始讲的。如果作为新手你看书又看不进去,原理又太复杂,有没有直接了当告诉我们怎么给项目贡献代码,并和项目同步代码的大体流程。于是我快速写了这么个东西。一来整理下自己混乱的思路,二来想号召大家一起用Git开发点东西,可是好几个同鞋只会寂寞的给自己push。

以下提到的

《Pro Git》中文版 PDF

下载见 http://www.linuxidc.com/Linux/2013-05/85066.htm

我先说下 我之前对GitHub操作的一些迷茫历程,然后之后是怎么解惑的。

1. 最最开始,我以为git clone [项目地址],也就是把代码clone下来 然后修改,然后push到项目里就可以了。

后来发现,这种情况只适合该项目属于你自己的情况,如果你git clone别人的项目代码,你想push都push不上去,因为 git push 不是需要你输入GitHub帐号密码么。

2. 然后 我就知道了 GitHub上 不是有个fork么, 好,那么给别人的项目提交代码的方式就有了,先fork下别人的代码,于是你的GitHub上就出现了同名的项目,这个项目就属于你自己了,你把这个自己的项目git clone到本地,修修改改,然后push到你自己的项目里,那么你如何把你对自己项目的改动,给发到之前fork的那个原项目呢,看见了没,在GitHub上你的项目页面有个按钮,叫Pull request,对 你点它就会把你的修改发到对方的项目里,人还会收到邮件呢,由原项目主人决定是否接受你的修改。

但是,这样问题就出来了,在你fork他的项目之后,如果他又更新了代码,你自己fork的项目怎么做到和原项目同步呢?

我就想啊,是不是 我还得重新git clone原项目的代码,然后手动合并到我fork的项目里呢。。。

梁老师说,你丫这太蛋疼了,肯定不是这么麻烦,我细想,也是啊,这不2么。。。

3,然后,从《Pro git》上看到一个知识点,我擦,GitHub居然可以给项目添加合作者,也就是说,假如你,对,说你呢,戴眼镜那个,你想参与我的项目,你跟我说一声,我就把你添加到我的项目里作为合作者,这个选项在项目的设置里面有,只要我添加你了,你就可以git clone我的代码然后修修改改,然后直接push上来就行了,就不用fork那么麻烦了,如果你要更新服务器代码,只要git pull就行了,看 合作者这东西多方便,就像我们在公司用svn似的。

4.然后我就想啊,有了合作者还需要你丫fork这个功能干啥?仔细一想,你写个好项目,不能随便加合作者啊,加了个熊孩子把你代码改废了可咋整,这年头熊孩子很多,我自己不就是一个么。所以fork肯定还是需要,fork就是专门预防熊孩子的,这就是真相!那么前面说道到fork之后如何与原项目同步的问题还在啊,没有得到解决。

5.于是《Pro git》再次给了我一个解答,具体流程是你啊想给我的项目做贡献,你先git clone我的代码到本地,然后修修改改,然后你不是不能push到我的项目里么,你可以先在GitHub页面上fork我的项目,有了你自己的项目地址(url)之后呢,你在本地操作git remote add [sort name] [your url],意思就是添加第二个远程仓库地址,这个仓库的“昵称”就是你刚指定的[sort name],然后,你之后push文件呢 就通过指定这个[sort name]来push到这个你自己的仓库里。等你觉得想要把你改的发给原项目同步,就在你的项目上点Pull request按钮.说下另一种情况,如果是,原项目发生了改动,你要想同步到本地,就直接从git fetch origin 从原项目的地址同步代码,然后再merge就好了。当然,如《Pro git》上所写,你可以通过新建分支的方式往自己的项目上push,这样同步的时候直接fetch就行了。这块如果我没写明白或者你想知道怎么新建分支的方式push到自己的项目里,可以直接参考《Pro git》的“公开的小型项目”一节,那我的贡献就是指点你如何从这本书里快速的找到你想要的。= =。

好了,时间有限,我写的快不一定讲明白,欢迎跟我讨论。

感谢linus,感谢git,感谢GitHub,感谢kindle,感谢《Pro git》,感谢梁老师,感谢我自己,感谢所有的熊孩子们。

GitHub 教程系列文章

: 

通过GitHub创建个人技术博客图文详解  http://www.linuxidc.com/Linux/2015-02/114121.htm

GitHub 使用教程图文详解  http://www.linuxidc.com/Linux/2014-09/106230.htm 

Git 标签管理详解 http://www.linuxidc.com/Linux/2014-09/106231.htm 

Git 分支管理详解 http://www.linuxidc.com/Linux/2014-09/106232.htm 

Git 远程仓库详解 http://www.linuxidc.com/Linux/2014-09/106233.htm 

Git 本地仓库(Repository)详解 http://www.linuxidc.com/Linux/2014-09/106234.htm 

Git 服务器搭建与客户端安装  http://www.linuxidc.com/Linux/2014-05/101830.htm 

Git 概述 http://www.linuxidc.com/Linux/2014-05/101829.htm 

分享实用的GitHub 使用教程

http://www.linuxidc.com/Linux/2014-04/100556.htm 

原文链接:http://www.linuxidc.com/Linux/2015-08/120999.htm

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Github上给别人的项目贡献代码

    xferris
  • Github 开源项目贡献指南:如何给开源项目做贡献 (上)

    给开源项目做贡献可以说是在你能想象的领域上学习,传授,累计经验的最有效的方式!为什么人们要给开源项目做贡献,原因太多了!本文将为大家讲述如何为Github 开源...

    腾讯开源
  • 如何给开源项目贡献代码

    以开源项目 awesome-vuepress 为例,Fork 开源仓库到自己的账号

    cnguu
  • Github 开源项目贡献指南:如何给开源项目做贡献 (下)

    给开源项目做贡献可以说是在你能想象的领域上学习,传授,累计经验的最有效的方式!为什么人们要给开源项目做贡献,原因太多了!本文将为大家讲述如何为Github 开源...

    腾讯开源
  • 如何给Apache开源项目贡献代码

    简介:根据个人的一些提交代码的经历,分享一下给Apache开源项目贡献代码的小经验。以下以Apache NIFI为例说明。

    用户5475193
  • 如何使用Git上传项目代码到github

    github是一个基于Git的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。这对于一般人来说公共仓库就已经足够了...

    林老师带你学编程
  • 如何在github上传多个项目

    作为一个新手,刚开始接触GitHub,由于因为水平不行,操作起来还是很有难度的,每次上传新的项目都传到一个仓库下面,长期下来,由于不规范的操作,导致某一个仓库下...

    java攻城狮
  • 如何在 GitHub 上做一个优秀的贡献者?

    本篇文章摘自我在知乎上的一个回答 - 《如何在 GitHub 上做一个优秀的贡献者?》。

    GitHubDaily
  • 如何上传项目到GitHub

    github作为开源的分布式版本管理系统,上面有众多的优秀开源项目,也有丰富的学习资料,熟练使用github也是程序员的一项必备技能。下面简单介绍下如何提交代码...

    吾非同
  • 如何上传项目到GitHub

    作为一个程序员,我们在工作的过程中会遇到很多的问题,和要学习很多新的东西,但是随着时间的推移,我们可能会再次遇到相同的问题或者要使用新的技术,但是时间久了,忘记...

    java攻城狮
  • 往github上面上传项目代码

    在桌面创建一个github文件夹(这里D,E,F位置随意),然后把项目代码放到github里面

    py3study
  • Git上传项目代码到github上

    1、在github上申请账号,并New Repositories(我的名字是April-Taurus),新建的Repository默认master为其主干分支

    杨肆月
  • Ceph,Red Hat在代码贡量献上一骑绝尘的开源项目

    前言: 笔者在之前的《从PowerVM,KVM到Docker:存储池的配置与调优-第一篇》中,分享了PowerVM下存储池的配置和调优的方法。在X86虚拟化和云...

    魏新宇
  • Github上如何找到一个优秀的且可以贡献的开源项目?

     法一:在github网站的主面板找到 Explore 选项卡 --> See more topics(查看更多主题) 或者 See more trendin...

    黑泽君
  • 如何将IDEA上的项目上传到GitHub上?

    最近,找到了一个去年用Springboot完成的一个web类博客项目,于是想到了上传到GitHub上开源分享。相信还有一部分刚入"IT"圈的编程...

    大数据梦想家
  • 如何把本地项目上传到Github

    作为一个有追求的程序员,需要撸点自己的开源项目,虽然我现在只是在学着造轮子,但这并不影响我成为大神的心。

    良月柒
  • GitHub推出「打赏」功能,全球最大同性交友平台将迎来更多开源工作?

    GitHub 官方表示,「开发者们为我们大家贡献了开源工具,这是对他们的经济支持,新的打赏功能将帮助他们构建更优秀的开源工作。」然而,这不得不让人感叹,作为全宇...

    Python数据科学
  • 如何将VS 2015中的项目上传到github

    最近开始慢慢接触github,现在希望将自己平时写的小程序,上传到github上,以便以后有个参考,在遇到同样问题的时候不至于想不起来怎么做而到处找别人的例子。

    Masimaro
  • Ubuntu环境如何上传项目到GitHub网站?

    Ubuntu环境如何上传项目到GitHub网站? 之前笔者写了一篇《CMake学习笔记(三)——以笔者的Robosub竞赛为例》的博客。博客中笔者以自己的项目为...

    剑影啸清寒

扫码关注云+社区

领取腾讯云代金券