Git已经成为程序员必备技能之一,而GitHub作为作流行的Git仓库托管平台,其不只提供Git仓库托管,仍是一个很是棒的技术人员社交平台,能够经过开源的项目进行协做、交流,是如今优秀的工程师必须娴熟运用的。php
本套教程从 GitHub 的历史入手,介绍 Git 安装、建立仓库、Fork、社会化、命令行开发,到最后的图形化工具的使用。html
学习完本教程,将不只掌握 GitHub 命令行使用方法,也会学会图形化使用方法。git
Git 是一个优秀的分布版本控制系统。版本控制系统能够保留一个文件集合的历史记录,并能回滚文件集合到另外一个状态(历史记录状态)。另外一个状态能够是不一样的文件,也能够是不一样的文件内容。在一个分布版本控制系统中,每一个人都有一份完整的源代码(包括源代码全部的历史记录信息),并且能够对这个本地的数据进行操做。分布版本控制系统不须要一个集中式的代码仓库。程序员
GitHub 是一个面向开源及私有软件项目的托管平台,由于只支持 Git 做为惟一的版本库格式进行托管,故名 GitHub。github
GitHub 于 2008 年 4 月 10 日正式上线,除了 Git 代码仓库托管及基本的 Web 管理界面之外,还提供了订阅、讨论组、文本渲染、在线文件编辑器、协做图谱(报表)、代码片断分享(Gist)等功能。目前,其注册用户已经超过百万,托管版本数量也是很是之多,其中不乏知名开源项目 Ruby on Rails、jQuery 等。编程
GitHub 之因此如此受欢迎,它的优点是不容忽视的:windows
GitHub 只支持 Git 格式的版本库托管,而不像其余开源项目托管平台还对CVS、SVN、Hg 等格式的版本库进行托管。GitHub 的哲学很简单,既然 Git 是最好的版本控制系统之一(对于不少喜欢 Git 和 GitHub 的人没有之一),没有必要为兼顾其余版本控制系统而牺牲 Git 某些独有特性。所以没有支持其余版本控制系统的历史负担,是 GitHub 成功的要素之一。浏览器
GitHub 对 Git 版本库提供了完整的协议支持,支持 HTTP 智能协议、Git-daemon、SSH 协议。缓存
GitHub 提供在线编辑文件的功能,不熟悉 Git 的用户也能够直接经过浏览器修改版本库里的文件。ruby
将社交网络引入项目托管平台是 GitHub 的创举。用户能够关注项目、关注其余用户进而了解项目和开发者动态。
项目的 Fork 和 Pull Request 构成 GitHub 最独具一格的工做模式。对提交代码的逐行评注及 Pull Request 构成 GitHub 特点的代码审核。
GitHub 经过私有版本库托管、面向企业的版本库托管和项目管理平台、人员招聘等付费服务得到了商业上的成功,这种成功使得 GitHub 没必要以页面中嵌入广告的方式维持运营,最大的受益者仍是用户。
要想使用 GitHub 第一步固然是注册 GitHub 帐号:
一、首先打开 https://github.com/pricing 进行注册。
二、在打开的页面中点击「Sign up now」注册,如图 1.1 所示。
图 1.1
三、在接下来的页面中建立用户名,填写 email 和设定密码,点击「Create an account」按钮建立帐户,如图1.2。
图 1.2
四、选择帐户类型 ,这里咱们默认选择 “Free” 类型,点击「Finish sign up」按钮完成注册,如图 1.3。
图 1.3
注:不一样类型的选择根据咱们的须要,若是存放开源项目,则免费托管;存放私有库,则须要付费。费用以下表:
私有库空间 | 费用 | 私有库数量 |
---|---|---|
大 | $50/月 | 50 |
中 | $20/月 | 20 |
小 | $10/月 | 10 |
微小 | $5/月 | 5 |
免费 | $0/月 | 0 |
同步你的 Fork 仓库
你或许已经 fork 一个项目为了提交更改向 upstream 或原始仓库。这种状况下,很好的实现了将 upstream 仓库按期同步到你的 fork。要作到这一点,你须要在命令行中使用 Git。你可使用你刚刚 fork 的 octocat/Spoon-Knife 仓库去练习设置 upstream 仓库。
第一步:安装 Git
你首先应该 安装 Git,若是你尚未。也不要忘记 经过 Git 验证 GitHub。
第二步:为你 fork 的仓库建立一个本地克隆
如今,你已经成功 fork Spoon-Knife 仓库,但在你本身的计算机上并无这个仓库的文件。让咱们克隆你 Fork 的代码到你本地的计算机上。
一、在 GitHub 上,定位到你 fork 的 Spoon-Knife 仓库。
二、在你 fork 的仓库页面的右侧边栏,点击复制图标复制你 fork 的 URL。
三、打开 Terminal 命令(针对苹果系统用户)或者命令提示行(针对 Windows 和 Linux 用户)。
四、输入
git clone
,而后粘贴在步骤 2 复制的 URL。它看起来就像以下所示,用你 GitHub 的用户名代替YOUR-USERNAME
:$ git clone https://github.com/YOUR-USERNAME/Spoon-Knife
五、按下 回车键 ,你的本地克隆就建立了。
$ 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 的变化更改到你本地。
一、在 GitHub 上,定位到 octocat/Spoon-Knife 仓库。
二、在这个仓库页面的右侧边栏,点击复制图标复制这个仓库的 URL。
三、打开 Terminal 命令(针对 Mac 用户)或提示命令行(Windows 和 Linux 用户)。
四、更改到你在步骤 2(建立一个本地)建立的你的 fork 的本地的目录。
cd
。ls
,列出当前目录的文件和文件夹。cd
目录名”进入你输入的目录下。cd ..
回到上一目录。五、输入
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)
六、输入
git remote add upstream
,而后粘贴你在步骤 2 复制的 URL 并按下回车键。它看起来以下所示:$ git remote add upstream https://github.com/octocat/Spoon-Knife.git
七、验证你 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
安装
一、从 windows.github.com 下载最新版本的 GitHub。
二、当你开启软件时,你能够选择用你的 GitHub 帐户登陆,或者新建一个帐户。
三、在左侧,你能够看到你的 GitHub 帐户,同时你也能看到你所在组的其余(用户)。 点击一个用户名,你将看到哪些仓库是可用的,点击 clone 将把对应仓库克隆到你的电脑。
四、另外,你能够点击顶部的 + add 来添加一个新的本地仓库。
你准备好经过 GitHub for Windows 开始编程和同步修改。
Fork
直接从 GitHub 上克隆来添加库,也是一种不错的选择。
一、你能够直接用你的我的帐户或者你所属的组织,经过 GitHub 来浏览相关项目。
二、你也能够直接在 GitHub 上经过 Clone in Desktop 按钮来进行一键克隆。
提交到本地
你在本地更新了数据,须要先提交到本地仓库:
一、点击你须要同步的库的名称。
二、你将看到一个表单,列举了你最新的变更。增添一个提交日志(另外能够选择增长一个描述),而后提交。
同步远程仓库
当有新的本地提交记录时,上图中的 in sync 按钮会被点亮,而且文字变成 sync,只须要点击 sync 按钮,就同步到了 GitHub 上的远程仓库。
GitHub for Mac
安装
一、从 mac.github.com 下载最新版本的 GitHub。
二、当你开启软件时,你能够选择用你的 GitHub 帐户登陆,或者新建一个帐户。
三、在左侧,你能够看到你的 GitHub 帐户,同时你也能看到你所在组的其余(用户)。 点击一个用户名,你将看到哪些仓库是可用的,点击 clone 将把对应仓库克隆到你的电脑。
四、另外,你能够点击顶部的 + add 来添加一个新的本地仓库。
你准备好经过 GitHub for Mac 开始编程和同步修改。
Fork
直接从 GitHub 上克隆来添加库,也是一种不错的选择。
一、你能够直接用你的我的帐户或者你所属的组织,经过 GitHub 来浏览相关项目。
二、你也能够直接在 GitHub 上经过 Clone in Desktop 按钮来进行一键克隆。
提交到本地
你在本地更新了数据,须要先提交到本地仓库:
一、点击你须要同步的库的名称。
二、你将看到一个表单,列举了你最新的变更。增添一个提交日志(另外能够选择增长一个描述),而后点击 Commit and Sync master,提交修改到本地仓库并同时同步到远程仓库。
同步远程仓库
当有新的本地提交记录时,右上角的 Sync 按钮会点亮,点击它,就同步到了 GitHub 上的远程仓库。