如何发现并参与开源项目

2019-03-11 16:35:17 浏览数 (1)

题图:by instagram from Instagram

阅读本文大概需要 6 分钟。

去年 6 月份,一个被广大程序员戏称为“全球最大同性交友网站”的 Github 网站,被微软收购了。在当时 IT 界,这算是轰动一时的大事件。

因为 Github 不仅仅是一个编程工具,一个仓库托管网站,更是开源社区的核心。据微软称,GitHub 拥有 2800 万用户,8500 万个代码库。现在,开发工程师越来越喜欢在 Github 上写作,仓库的主题也不限于代码,例如购房踩坑记录、科技资讯周报、面试指南、书籍博客资源翻译、个人网站等。

Github 可以是个知识宝库。那本文主要内容是介绍如何上手 Github 网站。

01

什么是Github?

Github 网站上有很多开源项目,每个项目都是一个 Git 仓库,而 Github 就是一个托管 Git 仓库的网站。毫不夸张地说,Github 迄今为止世界上公开的托管开源项目最多、代码最全、涵盖技术生态最全面、聚集牛人最多的平台。

02

为什么需要Github?

Github 本质上是个分享社区。所以我们可以把它当做个写作平台,记录自己编写的代码、记录自己学习的总结等。如果输出的内容很有价值,会引起别人的关注并 start,自己会更有动力去创作,这是个正反馈的过程。

另外,自己在一些知名度比较高的开源项目上贡献过代码,或者自己有一些高质量高赞的项目,是面试的加分项。如果只是单纯注册个账号,想在面试的时候“秀下肌肉”,最好打消这个念头。

03

版本管理

个人独立开发软件时代已经不复存在,现在软件开发都是团队协作。在团队中,每个人可能负责某个或多个模块。如果没有引入版本管理,某些特定代码改动导致项目出现异常,那排查问题就需要彻底审查整个项目,耗时耗力。版本管理的好处是经常性地保存着项目的改动,方便跟踪项目的改动。

版本管理有一些专门的版本控制系统,例如 SVN、Git 等。SVN 是老牌的版本管理系统。有些公司选择它是因为 SVN 有自带权限管理,能对不同的用户设置不同的权限。如测试同学只有查看权限,开发同学拥有提交、查看等权限。但它有个缺点,它的需要保证代码服务器正常运行,一旦服务器挂了或数据丢失,则无法正常访问。这是 SVN 本身是集中式版本控制系统所致。

图片来源于廖雪峰网站

Github 网站的版本管理使用的 Git,它是一个分布式版本控制系统。既然是分布式管理系统,每个终端既是服务端又是客户端。那么理论上一台电脑拥有 Git 仓库,其他人都能随意拉取和推送。但实际情况,很少在两人之间的电脑上推送版本库的修改。所以,Git 通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改。

图片来源于廖雪峰网站

04

入门 Github

Github 网站的代码仓库都是远程 Git 仓库,所以需要先熟悉 Git 相关的知识。如果你不熟悉 Git,可以去看廖雪峰大神的 Git 教程。

我们平时最频繁地操作也只分为两种,一种是从 Github 网站下载代码仓库地址到本地,另一种是对本地仓库进行修改,然后提交修改,最后推送到 Github 上。

  • 克隆仓库到本地的命令
代码语言:javascript复制
git clone https://github.com/monkey-soft/SchweizerMesser.git

如果你没有远程仓库,可以到 Github 网站上可视化创建下。当然,克隆的仓库可以是自己的,也可以是别人的。如果想在别人的项目中共享代码,需要在 Github 上 fork 别人的仓库,相当于自己基于当前版本新建一个分支。

  • 提交修改并推送到远程仓库

如果远程仓库的拥有者是自己,可以先增加文件,然后再提交修改到本地仓库中;

代码语言:javascript复制
git add test.py
git commmit -m "add test.py"

最后才能推送到远程仓库

代码语言:javascript复制
# 先关联远程仓库
git remote add origin https://github.com/monkey-soft/SchweizerMesser.git

# 关联后,第一次推送需要增加 -u
git push -u origin master

# 后续的修改,直接推送即可
git push origin master
  • 请求合并

如果远程仓库的拥有者是其他人,自己推送只是更新自己 fork 分支。如果想别人采纳自己共享代码,这时就需要使用 pull 命令。

代码语言:javascript复制
git pull <远程主机名> <远程分支名>:<本地分支名>

现在的 IDE 工具都内置了 Git,如 Android Studio、Pycharm 等。当熟悉 Git 的工作流程之后,可以使用可视化操作。另外,Github 官网也推出了桌面应用 GitHub Desktop,同样也是可视化操作。

05

发现有趣的项目

Github 上项目成百上千,想在上面寻找自己需要的项目还真需要点技巧。

第一种办法是使用 Github 的探索功能,点击“Explore”按钮。在这之后,你会看到 Github 会根据自己的喜好等推送有一些项目。

第二种办法是关注一些活跃的 Up 主。如果你向机器方向发展,可以关注这方面的活跃用户。因为他们会经常发现一些高赞的项目,我们可以通过好友动态去了解。

0 人点赞