GitHub入门

作者: morgengc | 来源:发表于2018-04-14 01:02 被阅读126次

    何谓 GitHub

    GitHub 是一个基于 git 的代码托管平台,付费用户可以建私人仓库,我们一般的免费用户只能使用公共仓库,也就是代码要公开。一旦你开始使用 GitHub,那么恭喜你,你在 GitHub 上托管的程序会有一个大家耳熟能详的名字,叫做“开源软件”!

    GitHub 由 Chris Wanstrath, PJ Hyett 与 Tom Preston-Werner 三位开发者在 2008 年 4 月创办。迄今拥有 59 名全职员工,主要提供基于 git 的版本托管服务。

    目前看来,GitHub 这场冒险已经胜出。根据来自维基百科关于 GitHub 的描述,我们可以形象地看出 GitHub 的增长速度:

    image_1cavoqn781n2fvru1fpd1n6m1onp9.png-94kBimage_1cavoqn781n2fvru1fpd1n6m1onp9.png-94kB

    今天,GitHub 已是:

    • 一个拥有 143 万开发者的社区。其中不乏 Linux 发明者 Torvalds 这样的顶级黑客,以及 Rails 创始人 DHH 这样的年轻极客。

    • 这个星球上最流行的开源托管服务。目前已托管 431 万 git 项目,不仅越来越多知名开源项目迁入 GitHub,比如 Ruby on RailsjQueryRubyErlang/OTP;近三年流行的开源库往往在 GitHub 首发,例如:BootStrapNode.jsCoffeScript 等。

    • Alexa 全球排名 414 的网站。

    下载其他人的程序

    要想下载其他人的程序,可以直接访问 GitHub 网站,无需注册。当然前提是你得知道源码的地址,比如我的一个开源项目 AhkScriptManager,其地址为 https://github.com/morgengc/AhkScriptManager,格式为 https://github.com/用户名/项目名

    直接访问网站,按下图所示即可下载软件。

    image_1cavq2i821ve42voej117npt8c1n.png-141.6kBimage_1cavq2i821ve42voej117npt8c1n.png-141.6kB

    通常每个项目都会有一个 README.md 文件,它会自动渲染到项目主页,描述了这个项目的基本情况,包括安装使用方法等。这个文档采用的语法叫做 Markdown,是目前互联网上最为流行的文档格式。实际上,本文也是用 Markdown 语法编写的,只不过最终被渲染为了一个网页呈现给大家。

    GitHub 是一个十分丰富的代码库,程序界流行一种说法,叫做“不要重复造轮子”。确实是这样,几乎你能想到的,别人早就想到了,而且实现了,更重要的是别人的实现比你自己的实现要高明得多。所以,着手写程序之前,可以尝试着先在 GitHub 上找一找有没有现成的“轮子”。很多时候,你会找到非常多的轮子,这个时候考验你的不是能不能找到轮子,而是选择哪一个轮子。

    image_1cavqnbmqt9t14p1196srbf1krr2a.png-6.3kBimage_1cavqnbmqt9t14p1196srbf1krr2a.png-6.3kB

    通常,可以查看项目主页上的标记以判断项目的流行度,有三个重要指标:

    • 第一个叫做“Watch”,它表示有多少用户正在关注这个项目,当作者更新了项目以后,关注者可以收到一封邮件,看到作者做了哪些修改;
    • 第二个叫做“Star”,它表示有多少用户给作者打了 Call,表示一种赞赏;
    • 第三个叫做“Fork”,它表示有多少用户克隆了这个项目,GitHub 允许并鼓励大家克隆代码,你可以对克隆的代码做任何修改,并且可以将你新加的功能提交给原作者,如果原作者乐意,他可能会接受你的提交,并且将这些新功能集成到原始项目中,这体现了开源协作的精神。

    当然,我这个项目是一个非常小众的编程语言 AutoHotkey 编写的,几个指标都比较低。 :)

    创建 GitHub 账户

    没有 GitHub 账户,你只能下载其他人的代码,你无法与各个开源软件的作者互动,软件作者也无法知道你是他的一个用户。更关键的是,你不能开源你自己的项目!因此,是时候给自己注册一个用户了。

    1. 打开 GitHub 官网
    2. 点击绿色按钮 Sign up for GitHub,填写用户名,邮件地址和密码。

    注意:用户名只能包含字母和"-"字符;密码至少包含一个字母,一个数字和七个字符

    1. 点击绿色按钮 Create an account,创建账号。

      image_1cavrug5ilovg74kff1pnp1cfm2n.png-81.8kBimage_1cavrug5ilovg74kff1pnp1cfm2n.png-81.8kB
    2. 在下一个页面点击绿色按钮 Finish sign 完成注册。

      image_1cavs0dscp25k45m9a1ohjf3h34.png-109.4kBimage_1cavs0dscp25k45m9a1ohjf3h34.png-109.4kB

    现在,你的 GitHub 账号就创建好了。请先在你的注册邮箱中完成邮件验证,然后就可以登录 GitHub 了。

    注意:G.F.W 曾经长时间屏蔽 GitHub,不过近几年没有屏蔽了,但网站渲染速度有时候较慢。如果长时间访问缓慢,可以参考 GitHub 访问慢解决办法 这篇文章。

    创建你的第一个 GitHub 项目

    1. 登录 GitHub 后,点击右上方 + 按钮,再点击 New Repository,如图示:

      image_1cavt27vf1t3htgrp6q4hapeb1g.png-38.8kBimage_1cavt27vf1t3htgrp6q4hapeb1g.png-38.8kB
    2. 然后输入 Repository 名称,以及仓库描述,选择开源协议,如图示:


      image_1cavt160k13qr19dn1b3vj4moimm.png-93.6kBimage_1cavt160k13qr19dn1b3vj4moimm.png-93.6kB
    3. 点击 Create repository 后便创建仓库成功:

      image_1cavt4saci271nbn1ho31m54qt61t.png-45.8kBimage_1cavt4saci271nbn1ho31m54qt61t.png-45.8kB

    接下来,就可以在 GitHub 上编辑 README.md,描述你这个项目想做点什么了。顺便花十分钟学一学 Markdown 语法。

    关于开源协议,可以不选,推荐选 MIT。下面这张图用于快速区分各种开源协议的区别:

    free_software_licenses.png-114.7kBfree_software_licenses.png-114.7kB

    向仓库中添加代码

    GitHub 默认使用 git 工具进行代码管理。对于上一代程序员来说,很多使用 SVN,也是支持的。如果 git 和 SVN 都不熟悉,建议使用 git。

    SVN

    如果熟悉 SVN,可以不使用 git。如果不熟悉,可以跳过这一节,直接看 git。首先需要找到项目的 SVN 地址,我还是拿我的项目举例:

    image_1cavtm4cahb8q9p1nslcr6dqnl.png-140.6kBimage_1cavtm4cahb8q9p1nslcr6dqnl.png-140.6kB

    全文拷贝红框内的内容,为:

    https://github.com/morgengc/AhkScriptManager.git
    

    修改后缀 .git/trunk

    https://github.com/morgengc/AhkScriptManager/trunk
    

    将其粘贴到 SVN Checkout 中即可将项目下载下来。之后的操作就跟普通的 SVN 完全一样了。

    image_1cavtq9m11qtg1hfg1rfm4m11fb12.png-39.9kBimage_1cavtq9m11qtg1hfg1rfm4m11fb12.png-39.9kB

    git

    git 是一个分布式版本控制工具。因为程序编写过程中必然会有大量的修改,在重要修改节点用 git 提交,可以对代码进行追溯,这样就实现了代码的版本控制。

    在下图中,Remote 代表 GitHub 网站,Repository 代表本地的仓库,而 workspace 则代表受 git 管理的代码目录。我们的修改发生在 workspace 中,小修改提交到本地仓库,重要修改提交到 GitHub 网站。连线上标记了重要的 git 指令。

    image_1cavukj4d8jr15c61r8fpg218gj2f.png-66.8kBimage_1cavukj4d8jr15c61r8fpg218gj2f.png-66.8kB

    关于 git 工具的使用,请参见 这篇文章,作者已经描述得非常清楚了,我就不再重复了。

    关于 git 的林林种种细节,建议参考 官方文档

    相关文章

      网友评论

        本文标题:GitHub入门

        本文链接:https://www.haomeiwen.com/subject/kndkkftx.html