概述

这里包含了一组让 Git 的使用样例,通过样例让您快速了解 Git 简单的使用方法,并将其运用到工作中。

  • 一台新电脑的开始
    本部分教程将教你如何在一台全新的电脑上安装 git 和使用相关的 GUI 工具(我们以 TortoiseGit 为教程对象)。
  • 本地简单使用
    本部分介绍了,Git 在不与远端协同使用的场景。主要为新建、提交和版本浏览。
  • Git服务器搭建
    本部分介绍了,Gitea 服务器的简单搭建了配置方法,可以快速上手进行 GIT 使用。
  • Git的协作之旅
    本部分介绍了,使用 Gitea 的简单方法,主要为项目的克隆、拉取和推送。

一台新电脑的开始

想要使用 GIt,你首先就需要安装软件并配置环境。放心这个工作相当简单。
在本教程中一台新电脑要想使用 Git 需要有如下的环境:

  1. Git 客户端。
  2. Git_GUI 客户端。(软件有 SmartGit,SourceTree,TortoiseGit 等)
  3. 配置 Git 的一些默认参数。

安装 Git 客户端

  1. 选择一个 Git 安装包,建议为 X64。
    快速上手 - 图1
  2. 启动安装程序, 出现下面界面时做如下选择。
    快速上手 - 图2
  3. 之后安装,直接选择默认选项即可。
  4. 完成安装后,通过 cmd 输入 git --version 检查 Git 版本验证安装成功。(教程中软件版本为 2.17.0)
    快速上手 - 图3

安装 Git_GUI 客户端

本教程使用的 Git_GUI 客户端为 TortoiseGit

基本软件安装

  1. 选择一个 TortoiseGit 安装包,建议为 X64。
    快速上手 - 图4
  2. 运行安装程序,全部都使用默认配置安装。
  3. 安装结束后,在资源管理器空白处右键菜单就可以看到 TortoiseGit 菜单,安装成功。
    快速上手 - 图5

中文语言包安装(可选,但是本教程都以中文为模板进行讲解 ^_^ )

  1. 安装中文语言包,选择对应办版本的语言包。
    快速上手 - 图6
  2. 安装使用默认配置即可。
  3. 安装结束后,在资源管理器空白处右键,选择 TortoiseGit-> 设置
    快速上手 - 图7
  4. 按照下面图所示设置语言为中文并保存设置。
    快速上手 - 图8
  5. 资源管理器空白处右键检查语言包安装情况。
    快速上手 - 图9

配置 Git 的默认参数

在使用 Git 之前需要对 Git 进行简单的配置,设置提交人的名称和邮箱步骤如下:

  1. 资源管理器空白处右键,选择 TortoiseGit-> 设置
    快速上手 - 图10
  2. 按照下面图所示设置名称email 并保存设置。
    快速上手 - 图11

本地简单使用

由于 Git 的版本管理功能是分布式的,因此在没有服务器的情况下 Git 也能够进行版本管理。下面说明 Git 的本地使用方法。下面简单说一下集中与分布的特点

集中管理与分布式管理(摘自廖雪峰的网站

Linus 一直痛恨的 CVS 及 SVN 都是集中式的版本控制系统,而 Git 是分布式版本控制系统,集中式和分布式版本控制系统有什么区别呢?

先说集中式版本控制系统,版本库是集中存放在中央服务器的,而干活的时候,用的都是自己的电脑,所以要先从中央服务器取得最新的版本,然后开始干活,干完活了,再把自己的活推送给中央服务器。中央服务器就好比是一个图书馆,你要改一本书,必须先从图书馆借出来,然后回到家自己改,改完了,再放回图书馆。

快速上手 - 图12

集中式版本控制系统最大的毛病就是必须联网才能工作,如果在局域网内还好,带宽够大,速度够快,可如果在互联网上,遇到网速慢的话,可能提交一个 10M 的文件就需要 5 分钟,这还不得把人给憋死啊。

那分布式版本控制系统与集中式版本控制系统有何不同呢?首先,分布式版本控制系统根本没有“中央服务器”,每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上。既然每个人电脑上都有一个完整的版本库,那多个人如何协作呢?比方说你在自己电脑上改了文件 A,你的同事也在他的电脑上改了文件 A,这时,你们俩之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。

和集中式版本控制系统相比,分布式版本控制系统的安全性要高很多,因为每个人电脑里都有完整的版本库,某一个人的电脑坏掉了不要紧,随便从其他人那里复制一个就可以了。而集中式版本控制系统的中央服务器要是出了问题,所有人都没法干活了。

在实际使用分布式版本控制系统的时候,其实很少在两人之间的电脑上推送版本库的修改,因为可能你们俩不在一个局域网内,两台电脑互相访问不了,也可能今天你的同事病了,他的电脑压根没有开机。因此,分布式版本控制系统通常也有一台充当“中央服务器”的电脑,但这个服务器的作用仅仅是用来方便“交换”大家的修改,没有它大家也一样干活,只是交换修改不方便而已。

快速上手 - 图13

已有文件使用版本控制

在一个已有文件的文件夹下使用 Git 版本控制的方法如下:
我们已经有了一个名为 TestGitCC 项目,该项目为一个 Hello World 程序。

  1. 资源管理器中切换到 TestGitCC 项目的目录下。
    快速上手 - 图14
  2. 在空白的地方右键,并点击 Git 在这里创建版本库
    快速上手 - 图15
  3. 使用默认设置完成版本库创建。
    快速上手 - 图16
  4. 再次在空白的地方右键,并点击 Git 提交
    快速上手 - 图17
  5. 在弹出的对话框中填写 提交说明 并勾选 main.c ,完成版本库的第一次提交。
    快速上手 - 图18

在空文件夹使用版本控制

在一个空文件夹下建立版本库的过程如下:

  1. 通过资源管理器在任意位置建立一个空的文件夹。
  2. 然后在文件夹中空白的地方右键,并点击 Git 在这里创建版本库
    快速上手 - 图19
  3. 使用默认设置完成版本库创建。
    快速上手 - 图20
  4. 这时若开启隐藏文件显示,就可以看到一个.Git 文件夹,证明仓库创建完成。
    快速上手 - 图21

扩充我们的仓库—增加文件

继续以 TestGitCC 项目为例,我们在项目中增加了一个 add.c 文件,并增加 add 函数如下。

  1. int add(int a,int b){
  2. return a+b;
  3. }

之后需要提交这个文件到我们的仓库

  1. 资源管理器中切换到 TestGitCC 项目的目录下。
  2. 在空白的地方右键,并点击 Git 提交

快速上手 - 图22

  1. 在弹出的对话框中填写 提交说明 并勾选 add.c ,最后点击提交
    快速上手 - 图23

优化我们的仓库—修改文件

继续操作 TestGitCC 项目。增加完函数我们跃跃欲试,我们还想修改这个文件,我们需要为 add 函数增加注释。

/****
*  加法函数
*  输入: a , b
*  输出: a + b
*/
int add(int a,int b){
    return a+b;
}
  1. 资源管理器中切换到 TestGitCC 项目的目录下。
  2. 在空白的地方右键,并点击 Git 提交
    快速上手 - 图24
  3. 在弹出的对话框中填写 提交说明,最后点击提交。(已在仓库中的文件不用再次勾选)
    快速上手 - 图25

排除“垃圾”文件—忽略文件

我们怀着激动的心情,编译了第一个使用 Git 管理的项目 TestGitCC,我们发现项目中多出了一个 Debug 文件夹并且,它会显示在提交界面里,这样每次提交都看到对于有强迫症的人而言实在不爽!

快速上手 - 图26

因此我们需要将项目中忽略的 Debug 文件夹忽略掉,让它以后再也不显示。

  1. 资源管理器中切换到 TestGitCC 项目的目录下。
  2. 选中 Debug 文件夹并在其上右键选择 TortoiseGit-> 添加到忽略列表->Debug
    快速上手 - 图27
  3. 在弹出的对话框中都使用默认选项并确认
    快速上手 - 图28
  4. TestGitCC 项目下会多出一个.gitignore 文件。
    快速上手 - 图29
  5. 参照 2.3. 增加一个新的文件提交 .gitignore 文件
    快速上手 - 图30

剔除“垃圾”文件—删除文件

在做完上述工作我们发现 add 函数我们根本没有用到啊!对于一个强迫症而言,没用的东西都是垃圾需要清理,这里我们就把 add.c 删除吧。(请放心大胆的删除,我们有了 git 就有了历史版本,add.c 还可以还原)

  1. 资源管理器中切换到 TestGitCC 项目的目录下,直接删除 add.c 文件。
  2. 在空白的地方右键,并点击 Git 提交

快速上手 - 图31

  1. 在弹出的对话框中填写 提交说明 ,最后点击 提交。(注意这里 add.c 显示为缺失也就是删除的意思)
    快速上手 - 图32

时光机的回溯—浏览历史与版本还原

现在,我们将进入时光机一起浏览我们对项目作出的修改!我们不需要记住我们每次都改了啥,Git 已经都处理好了,我们只需准确填写

  1. TestGitCC 项目的根目录的空白区域右键,点击 TortoiseGit-> 显示日志
    快速上手 - 图33
  2. 在弹出对话框中可以看到项目所有的提交记录。
    快速上手 - 图34

不好,现在我们还是想要要回我们的 add.c 文件,我们需要将其还原到带注释的版本。

  1. 找到 清理 没用的文件 的这条提交。
    快速上手 - 图35
  2. 在下面 add.c 上右键,选择还原到父版本
    快速上手 - 图36
  3. 然后见证奇迹 add.c 文件回来了!
    快速上手 - 图37

时光机还能帮我们进行版本比较,不过这个功能就留到高手进阶再介绍了~

Git 服务器搭建

本部分仅建议服务器管理人员使用查看

Git 服务器的程序有很多人开,目前比较有名的程序有:

  • Gitblit: 使用 java 开发,多平台可以使用
  • Gitlab: 使用 Ruby 开发类似 Github,只能在 Linux 中运行
  • GoGs,Gitea: 使用新的 go 语言编写,支持全平台。

本教程以 Gitea 为例说明服务端的搭建过程,搭建实例的机器为 192.168.1.16 服务器。

  1. 将 Gitea 程序放置到 D:\Gitea\ 目录下。
    快速上手 - 图38
  2. 选则适当的版本运行 Gitea。
    快速上手 - 图39
  3. 通过http://127.0.0.1:3000/访问 Gitea。
  4. 首次访问需要对 Gitea 进行配置,配置说明如下图所示,最后点击安装。(点击安装会出现 gitea.db 文件无法打开问题可以在 **D:\Gitea\data** 下新建一个 **txt** 文件然后更名为 **gitea.db**)
    数据库: SQLite3
    数据库文件路径: D:\Gitea\data\gitea.db
    应用名称: git 服务网站
    仓库根目录: D:\Gitea\data\gitea-repositories
    域名: 192.168.1.16
    应用 URL: http://192.168.1.16:3000/
    管理员用户名: gitea
    管理员密码: 根据情况设置
    管理员邮箱: 根据情况设置
    快速上手 - 图40
  5. 完成设置之后,关闭 Gitea。
  6. 通过管理员身份启动 cmd
  7. 通过如下命令进行 Gitea 服务注册,设置其开机自启动。
    x64 版本
    sc create gitea binPath= "D:\Gitea\gitea-1.4.0-windows-4.0-amd64.exe" start= auto
    x86 版本
    sc create gitea binPath= "D:\Gitea\gitea-1.4.0-windows-4.0-386.exe" start= auto
    快速上手 - 图41
  8. 通过任务管理器查看服务已启动。
    快速上手 - 图42
  9. 通过http://192.168.1.16:3000/访问,验证服务安装成功。
    快速上手 - 图43

这里只是简单的搭建方法,对于服务器的配置请参看 Gitea 服务的进阶配置

Git 的协作之旅

在有了 Git 服务器之后便可以通过服务器进行 Git 项目的管理,同时能够通过服务器实现项目的多人协作开发。下面将介绍如何使用 gitea 进行操作。

Gitea 注册账号

  1. 访问 Gitea 主页面(http://192.168.1.16:3000/),点击注册
    快速上手 - 图44
  2. 填写相关信息完成注册。
    快速上手 - 图45
  3. 登录账号验证注册。
    快速上手 - 图46
    快速上手 - 图47

本地已有版本库

可能你已经拥有了一个本地的 Git 版本库,并有了相当多的历史提记录。下面将指导你如何将一个已有的版本库同步到服务器中。
这里同样以 TestGitCC 项目为例进行说明。

  1. 访问 Gitea 主页面(http://192.168.1.16:3000/),点击登录
    快速上手 - 图48
    快速上手 - 图49
  2. 点击 -> 创建新的仓库
    快速上手 - 图50
  3. 如下,填写仓库相关信息。
    仓库名称: TestGitCC
    仓库描述: Git 服务的使用说明(根据情况填写)
    可见性: 根据情况选择
    快速上手 - 图51
  4. 完成创建后结果如下,复制 HTTP 的链接。
    快速上手 - 图52
  5. 资源管理器中切换到 TestGitCC 项目的目录下。
  6. 在空白处右键,点击 TortoiseGit-> 推送
    快速上手 - 图53
  7. 在弹出的对话框中点击管理
    快速上手 - 图54
  8. 在管理对话框中将拷贝的 HTTP 的链接填入 URL 中。
    快速上手 - 图55
  9. 推送到服务端
    快速上手 - 图56
  10. 在网页中检查推送结果
    快速上手 - 图57
    快速上手 - 图58

服务端新建版本库

这里创建一个带有 gitignore 文件和 README.md 文件初始化的仓库

  1. 访问 Gitea 主页面(http://192.168.1.16:3000/),点击登录

快速上手 - 图59
快速上手 - 图60

  1. 点击 -> 创建新的仓库

快速上手 - 图61

  1. 如下,填写仓库相关信息。
    仓库名称: TestGit2
    仓库描述: 服务端新建的仓库(根据情况填写)
    可见性: 根据情况选择
    .gitignore: c,c++,Visual Studio,Visual Studio Code
    使用选定文件和模板初始化仓库: 勾选
    快速上手 - 图62
  2. 复制仓库的 HTTP 链接。
    快速上手 - 图63
  3. 打开资源管理器,找到一个没有 git 的文件夹下。
  4. 在空白的地方右键,点击克隆
    快速上手 - 图64
  5. 弹出的对话框直接使用默认设置(拷贝链接会直接贴入 URL)。
    快速上手 - 图65
  6. 打开项目文件夹,然后就可以在文件夹中肆意妄为了。
    快速上手 - 图66

推送提交的内容

相比于 Git 的本地使用,在协作开发时需要注意的就是将提交推送到服务端。
这里以 TestGit2 项目为例说明,推送方法。我们为 TestGit2 增加一个 main.c 文件,并已经将文件提交到本地。

  1. 资源管理器中切换到 TestGit2 项目的目录下。
  2. 在空白处右键,点击 TortoiseGit-> 推送
  3. 在弹出对话框中直接点击确认,推送数据即可。
    快速上手 - 图67

对于 Gitea 的使用只有建立仓库,然后做拉取推送吗?答案很明显,要知道更多内容分就请移步 Gitea 的进阶使用