为什么说程序员都应该玩一玩GitHub
既熟悉又陌生的GitHub
关于GitHub,相信每一个程序员都再熟悉不过了。它为开发者提供Git仓库的托管服务,是全世界最大的代码集中地,被戏称为“全球最大同性交友网站”。
但是对于很大一部分程序员来说,GitHub却是一个陌生的地方。我们中有些人可能从来没有申请过一个账号,没有创建过属于自己的Repository,甚至没有真的去访问过这个网站。更不用说要在上面看看有哪些热门的开源项目,尝试着为这些项目添砖加瓦。
既然人人都说它好,那它到底好在哪里?或许,我们应该花点时间重新审视GitHub。
开源社区的作用
讲GitHub,就不能不先谈到开源社区。
在很长一段时间,项目的源代码是公司的财产,与商业秘密有关,是封闭和不可能公开的。后来开始有人在互联网上分享自己写的代码,互相讨论,逐渐形成了一种特殊的虚拟社区。社区成员大部分都是职业的程序员或编程爱好者,他们根据相应的开源软件许可证协议公布软件源代码,分享源代码,共同自由学习交流。
GitHub的出现,极大地推进开源社区的发展。在上面,我们可以随意地下载各种著名开源项目和开源开发框架。例如android系统的源代码、前端开发的jQuery框架、Spring系列开发框架、MyBatis等等。
玩GitHub至少有以下几个好处:
- 获取最新最热门最实用的开源组件,有助于开发公司项目
- 获取最流行的技术相关源代码,有助于参考学习借鉴
- 参与感兴趣的开源项目,增强与他人协作开发的能力
- 创建属于自己的开源项目,提升编程能力,打造个人名片

很多人可能觉得阅读开源框架的源代码没有必要,认为只要会用就行了。其实这是一个非常错误的认识。如果不懂这些框架的设计思想,就不可能真的做到根据实际情况选择最合适的开源组件。如果不了解其实现的技术细节,每次出问题的时候只能是误打误撞碰运气,很难从根本上解决问题。
另外,可能有人觉得自己水平不够,不愿意自己创建新的开源项目,觉得代码写得不好还给别人看很丢脸。其实这样想大可不必。开源社区的出发点本来就是交流学习,只有那些素质低下的人才会总是冷嘲热讽找存在感。只要你坚持提交代码,不断提升自己的水平,很快就可以在简历添上你的GitHub主页地址,告诉他们你是一个有实力的人。
动动手,让我们开始玩一玩GitHub
讲了这么多GitHub的好处,还是会有很多人只是听听而已。不如我们一起来动手,跟GitHub来一次亲密接触。可能有人担心自己英文不好,看到全英文的界面有点发怵。没关系,下面的内容会一步一步图文并茂地讲到底要怎么做,非常简单,只要一步一步跟着完成就可以了。
第1步:访问GitHub,申请账号
打开浏览器,在地址栏输入https://github.com。没有被墙,不需要科学上网就可以访问,如果一时打不开就等一会或者多试几次。

加载完之后会直接显示申请账号的页面,输入你的用户名(Uername)、邮箱地址(Email)和登录密码之后,点击Sign up for GitHub按钮完成申请。账号申请成功之后,你的邮箱会收到一封验证邮件,点击验证链接就可以了。
第2步:搜索特定项目,Fork该项目
有了自己的账号之后,就可以开始我们的GitHub之旅了。为了让没有多少GitHub使用经验的朋友练手,我特地新建了一个项目。在搜索框里输入levenyes/cnblogs后按回车键确认搜索,然后点击如下图所示的链接即可。

打开名称为coders-list的文件,然后点击页面中间编辑图标,将项目fork到你的主页。

第3步:编辑特定文件,提交Pull requests
文件内容其实特别简单。使用过xml的人都能读懂,<coder>标签里面写你在博客园的用户名或是最常用的网名,<email>标签里面写邮箱地址。前者必填,后者可以选择不填。不要删除原来的内容,根据你的个人信息新增了两行即可。
<coders-list>
<coder>levenyes</coder>
<email>levenyes@icloud.com></email> <coder>liwenye</coder>
</coders-list>
在编辑完成之后点击Propose file change按钮,就可以保存修改了。

保存成功之后,你会看到如下页面。这时候,你只是把修改保存到你的那条分支。如果要合并到我的那条分支,还需要点击绿色的Create pull request按钮。

跳转到以下页面之后,直接点击绿色的Create pull request按钮。

成功之后,你就会看到以下页面。

做完以上三个步骤的动作,就已经大功告成了。只需要我再处理完你的这个pull request之后,你就可以在我的主分支上看到你修改的最新文件内容。
最后再多说两句
相信到了这个时候,你就已经不会觉得使用GitHub是一件多么难的事情。开了这个好头之后,我们就可以自主地探索更多的玩法,更好地使用GitHub,更好地参与到开源社区当中。
我有一个公众号,经常会发一些看书思考过后写的文章。如果你喜欢我的文字,可以用微信搜索“李文业的思考笔记”或者扫描二维码关注。

为什么说程序员都应该玩一玩GitHub的更多相关文章
- 关于Unicode,字符集,字符编码,每个程序员都应该知道的事
关于Unicode,字符集,字符编码,每个程序员都应该知道的事 作者:Jack47 李笑来的文章如何判断一个人是否聪明?中提到: 必要.清晰.且准确的概念,是一切思考的基石.所谓思考,很大程度上,就是 ...
- 【Mood-10】每个程序员都应该读的30本书
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语. ...
- 最好的程序员都是行动派(成功者不是那些明知赚钱之法还要推三阻四的人。成功者知道轻重缓急,善于把握今天) good
我相信,所有程序员都需要在下面两点之间找到一个良好的平衡: 1.把自己关在一间私密的办公室里,针对你的程序与编译器展开一次亲密对话. 2.出入公众场合,与其他人公开谈论你的程序. 关于这个话题,我已经 ...
- StackOverflow程序员推荐:每个程序员都应读的30本书
“如果能时光倒流,回到过去,作为一个开发人员,你可以告诉自己在职业生涯初期应该读一本,你会选择哪本书呢?我希望这个书单列表内容丰富,可以涵盖很多东西.” 很多程序员响应,他们在推荐时也写下自己的评语. ...
- 每个程序员都应该学习使用Python或Ruby
每个程序员都应该学习使用Python或Ruby 如果你是个学生,你应该会C,C++和Java.还会一些VB,或C#/.NET.多少你还可能开发过一些Web网页,你知道一些HTML,CSS和JavaSc ...
- Java后端程序员都做些什么?
这个问题来自于QQ网友,一句两句说不清楚,索性写个文章. 我刚开始做Web开发的时候,根本没有前端,后端之说. 原因很简单,那个时候服务器端的代码就是一切:接受浏览器的请求,实现业务逻辑,访问数据库, ...
- 程序人生 | 35岁以上的 iOS 程序员都到哪里去了?
1.网上流传华为公司正在清理 34 岁以上的员工. " 中国区开始集中清理 34 + 的交付员工,...... 去向是跟海外服务部门交换今年新毕业的校招员工,也就是进新人,出旧人. 这些旧人 ...
- 为什么二流程序员都喜欢黑php?
为什么二流程序员都喜欢黑php? 为什么程序员都喜欢黑php?这个嘛!你骂一句php是垃圾试试,保准php程序员不揍扁你!这就好像自己的母校,纵然有很多不好的地方,但是只允许自己调侃,不允许外人骂半句 ...
- 基本上每个应用程序领域的程序员都有使用 C++
C++ 的使用基本上每个应用程序领域的程序员都有使用 C++. C++ 通常用于编写设备驱动程序和其他要求实时性的直接操作硬件的软件. C++ 广泛用于教学和研究. 任何一个使用苹果电脑或 Windo ...
随机推荐
- 【详细资料】ICN6211:MIPI DSI转RGB芯片简介
ICN6211功能MIPI DSI转RGB,分辨率1920*1200,封装QFN48
- 读redux有感: redux原来是这样操作的。
2017.9.10日 教师节 : ~当一个事物你没有接触,但是生活中 常常用到他,你就不得不去了解他了. 注:新手可以看一下,毕竟博主也是个菜鸟,没法写高深的东西,不想看博主扯淡的直接看第三节啦~~ ...
- poj3463 最短路和比最短路长1的路径数
这题需要很好的理解Dij. 在Dij的基础上,每个点多一个次短路的长度和数量进行控制. 那么在队列中,最短路控制时出现n次,次短路控制出现n次.注意松弛条件中val值和最短路.次短路的关系. 这题需要 ...
- WeTest+微信:小程序云端测试系统上线
日前,微信新增小程序测试系统,可便于开发者检测小程序缺陷,评估小程序产品质量.在小程序发布之前,开发者可将小程序代码提交到测试系统,在不同型号的手机真机上运行,执行完毕后自动生成测试报告.小程序云端测 ...
- 闲话和grunt
一年半没更新是因为自己转岗了,android framework+system转前端,可以想象过程之苦逼,苦成了一首诗:很烦很烦/非常烦/非常非常十分烦/特别烦特烦/极其烦/贼烦/简直烦死了/啊——. ...
- PHP中如何调试?
比如有个数组: $arr = array('A' => 'bobi','B' => 'hehe'); echo $arr; //Array 只打印出了变量 ...
- JavaScript 的使用基础总结①
JavaScript 使用 JavaScript 是一种轻量级的编程语言,JavaScript 是可插入 HTML 页面的编程代码,JavaScript 插入 HTML 页面后,可由所有的现代浏览 ...
- 团队作业8——第二次项目冲刺(Beta阶段)--5.25 5th day
团队作业8--第二次项目冲刺(Beta阶段)--5.25 fifth day Day five: 会议照片 项目进展 Beta冲刺的第四天,以下是今天具体任务安排: 队员 昨天已完成的任务 今日计划完 ...
- 微信小程序中的微信支付js代码和流程详解
微信支付流程 步骤 (一)获取用户的信息 (二)统一下单(返回的prepay_id用于第(三)步的请求参数) (三)发起支付请求 操作(这边假设你已经获得了用户的openId) (一).获取用户ope ...
- 201521123027 <java程序设计>第八周学习总结
1.本周学习总结 1.1思维导图 2.书面作业 Q1.List中指定元素的删除(题目4-1) 1.1 实验总结 总结:判断List中是否存在指定元素,需要用到equals方法,若存在就用remove进 ...