GitHub 使用手册 - 基础篇

缘起

Git已经成为程序员必备技能之一,而GitHub做为做流行的Git仓库托管平台,其不仅提供Git仓库托管,还是一个非常棒的技术人员社交平台,可以通过开源的项目进行协作、交流,是现在优秀的工程师必须娴熟运用的。

本套教程从 GitHub 的历史入手,介绍 Git 安装、创建仓库、Fork、社会化、命令行开发,到最后的图形化工具的使用。

学习完本教程,将不仅掌握 GitHub 命令行使用方法,也会学会图形化使用方法。

GitHub 简介

Git 是一个优秀的分布版本控制系统。版本控制系统可以保留一个文件集合的历史记录,并能回滚文件集合到另一个状态(历史记录状态)。另一个状态可以是不同的文件,也可以是不同的文件内容。在一个分布版本控制系统中,每个人都有一份完整的源代码(包括源代码所有的历史记录信息),而且可以对这个本地的数据进行操作。分布版本控制系统不需要一个集中式的代码仓库。

GitHub 是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名 GitHub。

GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面以外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协作图谱(报表)、代码片段分享(Gist)等功能。目前,其注册用户已经超过百万,托管版本数量也是非常之多,其中不乏知名开源项目 Ruby on Rails、jQuery 等。

GitHub 优势

GitHub 之所以如此受欢迎,它的优势是不容忽视的:

  1. GitHub 只支持 Git 格式的版本库托管,而不像其他开源项目托管平台还对CVS、SVN、Hg 等格式的版本库进行托管。GitHub 的哲学很简单,既然 Git 是最好的版本控制系统之一(对于很多喜欢 Git 和 GitHub 的人没有之一),没有必要为兼顾其他版本控制系统而牺牲 Git 某些独有特性。因此没有支持其他版本控制系统的历史负担,是 GitHub 成功的要素之一。
  2. GitHub 对 Git 版本库提供了完整的协议支持,支持 HTTP 智能协议、Git-daemon、SSH 协议。
  3. GitHub 提供在线编辑文件的功能,不熟悉 Git 的用户也可以直接通过浏览器修改版本库里的文件。
  4. 将社交网络引入项目托管平台是 GitHub 的创举。用户可以关注项目、关注其他用户进而了解项目和开发者动态。
  5. 项目的 Fork 和 Pull Request 构成 GitHub 最独具一格的工作模式。对提交代码的逐行评注及 Pull Request 构成 GitHub 特色的代码审核。
  6. GitHub 通过私有版本库托管、面向企业的版本库托管和项目管理平台、人员招聘等付费服务获得了商业上的成功,这种成功使得 GitHub 不必以页面中嵌入广告的方式维持运营,最大的受益者还是用户。
  7. GitHub 网站采用 Ruby on Rails 架构,在 Web 设计中运用了大量的 JavaScript、AJAX、HTML5 等技术,支持对使用 Markdown 等标记语言的内容进行渲染和显示等。关注细节使得 GitHub 成为了项目托管领域的后起之秀。

    GitHub 注册

    要想使用 GitHub 第一步当然是注册 GitHub 账号:

    1、首先打开 https://github.com/pricing 进行注册。

    2、在打开的页面中点击「Sign up now」注册,如图 1.1 所示。


    图 1.1

    3、在接下来的页面中创建用户名,填写 email 和设定密码,点击「Create an account」按钮创建账户,如图1.2。


    图 1.2

    4、选择账户类型 ,这里我们默认选择 “Free” 类型,点击「Finish sign up」按钮完成注册,如图 1.3。


    图 1.3

    注:不同类型的选择根据我们的需要,如果存放开源项目,则免费托管;存放私有库,则需要付费。费用如下表:

    私有库空间 费用 私有库数量
    $50/月 50
    $20/月 20
    $10/月 10
    微小 $5/月 5
    免费 $0/月 0

    安装Git

    1、下载并安装 Git 最新版本

    2、安装完成后,打开 Terminal 命令(针对苹果系统用户)或者命令提示行(针对 Windows 和 Linux 用户)。

    3、告诉 Git 你的姓名,以便你的提交能被正确地标记。在 $ 后输入下面的内容:

    $ git config --global user.name "YOUR NAME"

    4、告诉 Git 邮箱地址,以便与你的 Git 提交进行关联。你指定的邮箱要和邮箱设置里的是同一个。如何保持你的邮箱地址隐藏,请参考:保持你的邮箱地址私有

    $ git config --global user.email "YOUR EMAIL ADDRESS"

    通过 Git 验证 GitHub

    当你通过 Git 连接到一个 GitHub 仓库后,我们需要验证 GitHub,这里有两种验证方法:

    • 通过 HTTPS 验证
    • 通过 SSH 进行验证

    通过 HTTPS 建立连接(推荐)

    如果选择 HTTPS 方式,我们可以用一个证书小帮手把 GitHub 密码缓存在 Git

    通过 SSH 建立连接

    如果选择 SSH 方式,我们需要在电脑中生成 SSH keys,用来从 GitHub 中 push 或 pull。

    在 GitHub 上创建一个新仓库

    1、在任意的页面右上角点击 +,然后点击新建仓库 New repository。

    2、为你的仓库创建一个简短便于记忆的名字。例如 “hello-world”。

    3、为你的仓库添加一个描述(非必须的)。例如 “My first repository on GitHub”。

    4、选择你的仓库类型为公有或者私有:

    • Public:公有仓库对于一个刚入门的新手来说是一个不错的选择。这些仓库在 GitHub 上对于每个人是可见,你可以从协作型社区中受益。
    • Private:私有仓库需要更多地步骤。它们只对于你来说是可用的,这个仓库的所有者属于你和你所指定要分享的合作者。私有仓库仅仅对付费账户可用。更多的信息请参照 "What plan should I choose?"。

    5、选择Initialize this repository with a README。

    6、点击Create repository。

    恭喜!你已经成功地创建你的第一个仓库,并且通过 README 文件初始化了它。

    提交你的第一个更改

    一个提交就像你项目里的文件在一个特定时间点上的快照一样。

    当你创建了一个新仓库,你通过 README 文件初始化它。README 文件里有关于你这个项目详细的解释,或者添加一些关于如何安装或者使用该项目的文档。README 文件的内容会自动地显示在你仓库的首页。

    让我们提交一个对 README 文件的修改。

    1、在你仓库的文件列表,点击 README.md。

    2、在文件内容的上方,点击编辑按钮。

    3、在 Edit file 标签上,输入一些关于你自己的信息。

    4、在新内容的上方,点击 Preview changes。

    5、检查一下你对这个文件进行的更改,你会看到新的内容被绿色标记。

    6、在页面的底部,即 "Commit changes" 下方,输入一些简短、有意义的提交信息来解释你对这个文件所进行的修改。

    7、点击 commit changes。

    Fork 一个示例仓库

    Fork 是对一个仓库的克隆。克隆一个仓库允许你自由试验各种改变,而不影响原始的项目。

    一般来说,forks 被用于去更改别人的项目(贡献代码给已经开源的项目)或者使用别人的项目作为你自己想法的初始开发点。

    提出更改别人的项目

    使用 forks 提出改变的一个很好的例子是漏洞修复。与其记录一个你发现的问题,不如:

    • Fork 这个仓库
    • 进行修复
    • 向这个项目的拥有者提交一个 pull requset

    如果这个项目的拥有者认同你的成果,他们可能会将你的修复更新到原始的仓库中!

    使用别人的项目作为你自己想法的初始开发点

    开源的核心是共享代码,我们可以制作更好、更可靠的软件。

    事实上,当你在 GitHub 上创建一个仓库时,你可以选择自动包含一个许可文件,这个文件决定你是否希望将你的项目分享给其他人。

    Fork 一个仓库分为简单的两步。我们已经创建了一个仓库让你用于练习!

    1. 在 GitHub 上,定位到 octocat/Spoon-Knife 仓库。
    2. 在页面右上角,点击 Fork 按钮。

    就这样!现在你已经 fork 这个原始的 octocat/Spoon-Knife 仓库。

     

    同步你的 Fork 仓库

    你或许已经 fork 一个项目为了提交更改向 upstream 或原始仓库。这种情况下,很好的实现了将 upstream 仓库定期同步到你的 fork。要做到这一点,你需要在命令行中使用 Git。你可以使用你刚刚 fork 的 octocat/Spoon-Knife 仓库去练习设置 upstream 仓库。

    第一步:安装 Git

    你首先应该 安装 Git,如果你还没有。也不要忘记 通过 Git 验证 GitHub

    第二步:为你 fork 的仓库创建一个本地克隆

    现在,你已经成功 fork Spoon-Knife 仓库,但在你自己的计算机上并没有这个仓库的文件。让我们克隆你 Fork 的代码到你本地的计算机上。

    1、在 GitHub 上,定位到你 fork 的 Spoon-Knife 仓库。

    2、在你 fork 的仓库页面的右侧边栏,点击复制图标复制你 fork 的 URL。

    3、打开 Terminal 命令(针对苹果系统用户)或者命令提示行(针对 Windows 和 Linux 用户)。

    4、输入 git clone,然后粘贴在步骤 2 复制的 URL。它看起来就像如下所示,用你 GitHub 的用户名代替 YOUR-USERNAME:

    $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife

    5、按下 回车键 ,你的本地克隆就创建了。

    $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
    Cloning into `Spoon-Knife`...
    remote: Counting objects: 10, done.
    remote: Compressing objects: 100% (8/8), done.
    remove: Total 10 (delta 1), reused 10 (delta 1)
    Unpacking objects: 100% (10/10), done.

    现在,你已经有了针对你 fork 的 Spoon-Knife 仓库的本地克隆代码!

    第三步:通过配置 Git 来同步你 fork 的原始 Spoon-Knife 仓库

    当你 fork 一个项目是为了提出更改这个原始的仓库,你可以配置 Git 将原始的或者 upstream 的变化更改到你本地。

    1、在 GitHub 上,定位到 octocat/Spoon-Knife 仓库。

    2、在这个仓库页面的右侧边栏,点击复制图标复制这个仓库的 URL。

    3、打开 Terminal 命令(针对 Mac 用户)或提示命令行(Windows 和 Linux 用户)。

    4、更改到你在步骤 2(创建一个本地)创建的你的 fork 的本地的目录。

    1. 回到根目录,只输入 cd
    2. 输入 ls,列出当前目录的文件和文件夹。
    3. 输入 cd 目录名”进入你输入的目录下。
    4. 输入 cd .. 回到上一目录。

    5、输入 git remove -v,按下回车键,你将会看到你的 fork 当前配置的远程仓库:

    $ git remote -v
    origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
    origin  https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)

    6、输入 git remote add upstream,然后粘贴你在步骤 2 复制的 URL 并按下回车键。它看起来如下所示:

    $ git remote add upstream https://github.com/octocat/Spoon-Knife.git

    7、验证你 fork 里新指明的这个 upstream 仓库,再次输入 git remote -v。你将会看到你 fork 的 URL 作为原始的地址,而原始的仓库的 URL 作为 upstream。

    $ git remote -v
    origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (fetch)
    origin    https://github.com/YOUR_USERNAME/YOUR_FORK.git (push)
    upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (fetch)
    upstream  https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git (push)

    现在,你可以保持你的 fork 与 upstream 的仓库的同步,利用几个 Git 命令。想知道更多信息,请参阅 Syncing a fork

    检索其他仓库来 Fork

    每个公开的仓库都可以被 fork,所以你可以搜索你感兴趣的项目并 fork 它!

    Explore GitHub 是一个大的平台,可以让你找到感兴趣的项目。经常访问这个页面去关注最新和最酷的东西。

    Follow 一个人

    GitHub 一个很强大的特性就是可以看到其他人在从事或者与什么相关的工作。

    当你在 GitHub 上跟踪了某些人之后,你就会在你的面板里面收到他们活动的动态通知。你可以在他们的页面上,点击Follow 按钮。

    Watch 一个项目

    在某些情况下,你可以需要实时跟踪一个特别项目的动态,这和跟踪一个用户比较类似,只是关注点仅仅在于该项目的事件。你可以给这个项目发送电子邮件订阅或者在页面上配置通知设置。比较典型的通知比如对补丁或者问题的评论,或者仅仅是项目的一个评论。

    我们的朋友 Octocat 有一个叫做 Hello World 的项目,我们想去查看。

    当你在项目页面的时候,你会发现页面顶部有一个 watch 按钮,点击它。

    恭喜,你关注了这个 Hello World 项目。如果 Octocat 更新了这个项目,你将会在你的控制面板收到改动的通知。

    GitHub for Windows

    安装

    1、从 windows.github.com 下载最新版本的 GitHub。

    2、当你开启软件时,你可以选择用你的 GitHub 账户登录,或者新建一个账户。

    3、在左侧,你可以看到你的 GitHub 账户,同时你也能看到你所在组的其他(用户)。 点击一个用户名,你将看到哪些仓库是可用的,点击 clone 将把对应仓库克隆到你的电脑。

    4、另外,你可以点击顶部的 + add 来添加一个新的本地仓库。

    你准备好通过 GitHub for Windows 开始编程和同步修改。

    Fork

    直接从 GitHub 上克隆来添加库,也是一种不错的选择。

    1、你可以直接用你的个人账户或者你所属的组织,通过 GitHub 来浏览相关项目。

    2、你也可以直接在 GitHub 上通过 Clone in Desktop 按钮来进行一键克隆。

    提交到本地

    你在本地更新了数据,需要先提交到本地仓库:

    1、点击你需要同步的库的名称。

    2、你将看到一个表单,列举了你最新的变动。增添一个提交日志(另外可以选择增加一个描述),然后提交。

    同步远程仓库

    当有新的本地提交记录时,上图中的 in sync 按钮会被点亮,并且文字变成 sync,只需要点击 sync 按钮,就同步到了 GitHub 上的远程仓库。

    GitHub for Mac

    安装

    1、从 mac.github.com 下载最新版本的 GitHub。

    2、当你开启软件时,你可以选择用你的 GitHub 账户登录,或者新建一个账户。

    3、在左侧,你可以看到你的 GitHub 账户,同时你也能看到你所在组的其他(用户)。 点击一个用户名,你将看到哪些仓库是可用的,点击 clone 将把对应仓库克隆到你的电脑。

    4、另外,你可以点击顶部的 + add 来添加一个新的本地仓库。

    你准备好通过 GitHub for Mac 开始编程和同步修改。

    Fork

    直接从 GitHub 上克隆来添加库,也是一种不错的选择。

    1、你可以直接用你的个人账户或者你所属的组织,通过 GitHub 来浏览相关项目。

    2、你也可以直接在 GitHub 上通过 Clone in Desktop 按钮来进行一键克隆。

    提交到本地

    你在本地更新了数据,需要先提交到本地仓库:

    1、点击你需要同步的库的名称。

    2、你将看到一个表单,列举了你最新的变动。增添一个提交日志(另外可以选择增加一个描述),然后点击 Commit and Sync master,提交修改到本地仓库并同时同步到远程仓库。

    同步远程仓库

    当有新的本地提交记录时,右上角的 Sync 按钮会点亮,点击它,就同步到了 GitHub 上的远程仓库。

时间: 2024-10-21 22:08:00

GitHub 使用手册 - 基础篇的相关文章

[转]gitHub客户端Desktop的安装使用总结 ---基础篇

gitHub客户端Desktop的安装使用总结 ---基础篇 发表于2015/12/11 11:41:57  8399人阅读 分类: Android之应用实战 这段时间想把我写的东西上传到github上,所以开始收集资料学习,走了很多弯路( msysgit和极慢的FQ网速让我欲仙欲死),最后找到了比较好用的工具gitHub desktop.在此做出详细记录. 一.第一步 注册github账号 1.注册界面 https://github.com/,如下图: 2.下注册流程 3.上面简单的输入一下用

工程脚本插件方案 - c集成Python基础篇

工程脚本插件方案 - c集成Python基础篇 序: 为什么要集成脚本,怎么在工程中集成Python脚本. 在做比较大型的工程时,一般都会分核心层和业务层.核心层要求实现高效和稳定的基础功能,并提供调用接口供业务层调用的一种标准的框架划分.在实际中根据需求会拆分的更细. 外部的表现形式就是一个核心动态库,带着一堆业务业务动态库.通过一个调度程序把这些链接起来,外加一堆配置文件,就形成一个完成的项目. 这种模式在一个团队开发中,工作职责比较容易划分.制定API接口后,开发工作基本可以并行实现,包括

Hybrid APP基础篇(四)->JSBridge的原理

说明 JSBridge实现原理 目录 前言 参考来源 前置技术要求 楔子 原理概述 简介 url scheme介绍 实现流程 实现思路 第一步:设计出一个Native与JS交互的全局桥对象 第二步:JS如何调用Native 第三步:Native如何得知api被调用 第四步:分析url-参数和回调的格式 第五步:Native如何调用JS 第六步:H5中api方法的注册以及格式 进一步完善JSBridge方案 思路 实现 注意 完整的JSBridge 完整调用流程图 另外实现:不采用url sche

Javascript基础篇小结

Javascript基础篇小结 字数9973 阅读3975 评论7 喜欢28 转载请声明出处 博客原文 随手翻阅以前的学习笔记,顺便整理一下放在这里,方便自己复习,也希望你有也有帮助吧 第一课时 入门基础 知识点: 操作系统就是个应用程序 只要是应用程序都要占用物理内存 浏览器本身也是一个应用程序 浏览器本身只懂得解析HTML 调用浏览器这个应用程序的一个功能绘制 1.javascript介绍 JavaScript操作DOM的本质是=获取+触发+改变 目的:就是用来操作内存中的DOM节点 修改D

Git操作(基础篇)

Git操作(基础篇) Git是一款免费.开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目.Git的读音为/g?t/.Git是一个开源的分布式版本控制系统,用以有效.高速的处理从很小到非常大的项目版本管理.Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件. Git是分布式版本控制系统,同一个Git仓库,可以分布到不同的机器上.怎么分布呢?最早,肯定只有一台机器有一个原始版本库,此后,别的机器可以"克隆"这个原始版

个性二维码开源专题<基础篇>

二维码原理介绍: 二维码为什么是黑白相间的?黑色表示二进制的"1",白色表示二进制的"0" "我们之所以对二维码进行扫描能读出那么多信息,就是因为这些信息被编入了二维码之中."黄海平说,"制作二维码输入的信息可以分成三类,文本信息,比如名片信息:字符信息,比如网址.电话号码:还有图片信息,甚至还可以包括简短的视频."数据信息是怎么被编入的呢?信息输入后,首先要选择一种信息编码的码制.现在常见的二维码都是以QR码作为编码的码制.

JavaScript笔记基础篇(二)

基础篇主要是总结一些工作中遇到的技术问题是如何解决的,应为本人属于刚入行阶段技术并非大神如果笔记中有哪些错误,或者自己的一些想法希望大家多多交流互相学习. 1.ToFixed()函数 今天在做Birt报表时, 要显示一列百分比的数据,但因一些特别的原因,不能使用使用百分比样式,即如果数据是0.9538不能显示成“95.38%”的样式,必须显示成“95.38”. 开始时想使用javascript的内置函数Math.round(),可Math.round()只能显示为整数,而不能保留小数. 再网上搜

[转载]前端工程——基础篇

特别声明:本文转载@云龙的<前端工程——基础篇>,感谢@云龙的分享. 喂喂喂,那个切图的,把页面写好就发给研发工程师套模板吧. 你好,切图仔. 不知道你的团队如何定义前端开发,据我所知,时至今日仍然有很多团队会把前端开发归类为产品或者设计岗位,虽然身份之争多少有些无谓,但我对这种偏见还是心存芥蒂,酝酿了许久,决定写一个系列的文章,试着从工程的角度系统的介绍一下我对前端,尤其是Web前端的理解. 只要我们还把自己的工作看作为一项软件开发活动,那么我相信读过下面的内容你也一定会有所共鸣. 前端,是

Git使用基础篇

Git使用基础篇 Git是一个分布式的版本控制工具,本篇文章从介绍Git开始,重点在于介绍Git的基本命令和使用技巧,让你尝试使用Git的同时,体验到原来一个版 本控制工具可以对开发产生如此之多的影响,文章分为两部分,第一部分介绍Git的一些常用命令,其中穿插介绍Git的基本概念和原理,第二篇重点介绍 Git的使用技巧,最后会在Git Hub上创建一个开源项目开启你的Git实战之旅 1.Git是什么 Git在Wikipedia上的定义:它是一个免费的.分布式的版本控制工具,或是一个强调了速度快的