去年 6 月份,一个被广大程序员戏称为“全球最大同性交友网站”的 Github 网站,被微软收购了。

在当时 IT 界,这算是轰动一时的大事件。

因为 Github 不仅仅是一个编程工具,一个仓库托管网站,更是开源社区的核心。

据微软称,GitHub 拥有 2800 万用户,8500 万个代码库。

现在,开发工程师越来越喜欢在 Github 上写作,仓库的主题也不限于代码,例如购房踩坑记录、科技资讯周报、面试指南、书籍博客资源翻译、个人网站等。

Github 可以是个知识宝库。

那本文主要内容是介绍如何上手 Github 网站。

1.什么是 Github ?

Github 网站上有很多开源项目,每个项目都是一个 Git 仓库,而 Github 就是一个托管 Git 仓库的网站。

毫不夸张地说,Github 迄今为止世界上公开的托管开源项目最多、代码最全、涵盖技术生态最全面、聚集牛人最多的平台。

2.我们为什么需要 Github?

Github 本质上是个分享社区。所以我们可以把它当做个写作平台,记录自己编写的代码、记录自己学习的总结等。

如果输出的内容很有价值,会引起别人的关注并 start,自己会更有动力去创作,这是个正反馈的过程。

另外,自己在一些知名度比较高的开源项目上贡献过代码,或者自己有一些高质量高赞的项目,是面试的加分项。

如果只是单纯注册个账号,想在面试的时候“秀下肌肉”,最好打消这个念头。

3.版本管理

个人独立开发软件时代已经不复存在,现在软件开发都是团队协作。

在团队中,每个人可能负责某个或多个模块。

如果没有引入版本管理,某些特定代码改动导致项目出现异常,那排查问题就需要彻底审查整个项目,耗时耗力。版本管理的好处是经常性地保存着项目的改动,方便跟踪项目的改动。

版本管理有一些专门的版本控制系统,例如 SVN、Git 等。

SVN 是老牌的版本管理系统。

有些公司选择它是因为 SVN 有自带权限管理,能对不同的用户设置不同的权限。

如测试同学只有查看权限,开发同学拥有提交、查看等权限。但它有个缺点,它的需要保证代码服务器正常运行,一旦服务器挂了或数据丢失,则无法正常访问。

这是 SVN 本身是集中式版本控制系统所致。

SVN

Github 网站的版本管理使用的 Git,它是一个分布式版本控制系统。

既然是分布式管理系统,每个终端既是服务端又是客户端。那么理论上一台电脑拥有 Git 仓库,其他人都能随意拉取和推送。

但实际情况,很少在两人之间的电脑上推送版本库的修改。

所以,Git 通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改。

Git

4.入门 Github

Github 网站的代码仓库都是远程 Git 仓库,所以需要先熟悉 Git 相关的知识。

如果你不熟悉 Git,可以去看廖雪峰大神的 Git 教程。

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

克隆仓库到本地的命令

1
git clone https://github.com/monkey-soft/SchweizerMesser.git

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

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

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

1
2
git add test.py
git commmit -m "add test.py"

最后才能推送到远程仓库

1
2
3
4
5
6
7
8
# 先关联远程仓库
git remote add origin https://github.com/monkey-soft/SchweizerMesser.git

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

# 后续的修改,直接推送即可
git push origin master

请求合并

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

1
git pull <远程主机名> <远程分支名>:<本地分支名>

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

5.发现有趣的项目

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

第一种办法是使用 Github 的探索功能,点击“Explore”按钮。

在这之后,你会看到 Github 会根据自己的喜好等推送有一些项目。

推送项目

第二种办法是关注一些活跃的 Up 主。

如果你向机器方向发展,可以关注这方面的活跃用户。

因为他们会经常发现一些高赞的项目,我们可以通过好友动态去了解。