Git 学习笔记之起步篇——相关知识简介

1. 起步

1.1了解版本控制

Git 常用于版本控制,那么何为版本控制?
版本控制——记录一个或若干个文件内容变化,以便将来查阅特定版本修订情况的系统。
有了它你就可以将某个文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态,你可以比较文件的变化细节,查出是谁更改了哪个地方,找出出现问题的原因等。

  • 本地版本控制系统
    采用某种简单的数据库来记录文件的历次更新差异,无法做到多人协同工作。
  • 集中化的版本控制系统
    服务器集中管理,,保存所有文件的修订版本,协同工作的人们通过客户端连接到这台服务器,取出最新的文件或提交更新。
    优点:每个人可在一定程度上看到项目其他人在做什么,管理员也可以轻松掌握每个开发者权限,且远比在各个客户端上维护本地数据库轻松。
    缺点:若中央服务器出现故障,则协同人员无法工作,若磁盘损坏又没有恰当备份,则将丢失所有数据,只剩下各自机器上的数据。
  • 分布式版本控制系统
    客户端不止提取最新版本文件快照,而是将代码仓库完整地镜像下来,即使服务器发生故障,本地仍有数据,可从本地仓库回复。
    即每次克隆操作,都是一次对代码仓库的完整备份。
    且许多这类系统都可以指定和若干不同的远端代码仓库进行交互。

1.2 Git 简介

  • 直接记录快照,而非差异比较
    Git 更像一个小型的文件系统,每一次提交或进行其他操作时,Git 会对当时的全部文件制作一个快照并保存这个快照的索引,若文件没有更改,不再重新存储,保留一个链接指向之前存储的文件。
    即指向所有当前版本的最新文件。

  • 近乎所有操作都是本地执行
    因为每次克隆时都将数据全部拷贝,所以执行的绝大多数操作都是需要访问本地文件和资源,效率高;
    且及时你离线或没有 VPN 时,几乎也可以进行任何操作。

  • Git 保证完整性
    Git 中所有数据在存储前都会进行校验,因此不可能在 Git 不知情时更改任何文件内容或目录内容。即所有操作都会被记录。

  • Git 一般只添加数据
    你执行的 Git 操作,几乎只往 Git 数据库中增加数据,很难让 Git 执行任何不可逆操作或是以任何方式清除数据。

  • 三种状态:Git 仓库、工作目录、暂存区域

    三种状态示意图

    1)工作目录
    对项目的某个版本独立提取出来的内容,放在磁盘上供开发者使用或修改
    2)Git 仓库
    Git 用来保存项目的元数据和对象数据库的地方。Git最重要的存储数据的部分。
    3)暂存区域
    一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库中。
    基本的 Git 工作流程:
    工作目录中修改文件 => 文件快照存放到暂存区 => 提交更新,找到暂存区的文件,永久存储到 Git 仓库

1.3 命令行

Git 有多种使用方式,可使用原生命令行模式,也可使用 GUI 模式。
但只有在命令行模式下才能执行 Git 的所有命令,而大多数的 GUI 软件只实现了 Git 所有功能的一个子集以降低操作难度。

1.4 安装 Git

安装包下载地址:https://git-scm.com/downloads,下载后直接安装即可

1.5 初次运行 Git 前的配置

Git 自带 git config 工具来设置控制 Git 外观和行为的配置变量。这些变量存储在三个不同位置:
1. /etc/gitconfig 文件:——包含系统上每一个用户及他们仓库的通用配置。
对应 git config --system
2. ~/.gitconfig 或 ~/.config/git/config 文件:——只针对当前用户。
对应 git config --global
3. 当前实用仓库的 Git 目录中的 config 文件(.git/config):——针对该仓库
每一个级别覆盖上一级别的配置。
在 Windows 系统中,Git 会查找 $HOME 目录下(一般情况下是 C:\Users$USER)的 .gitconfig 文件。 Git 同样也会寻找 /etc/gitconfig 文件,但只限于 MSys 的根目录下,即安装 Git 时所选的目标位置

1.5.1 用户信息

安装完 Git 后应首先配置你的用户名和邮件地址。因为每一个 Git 的提交都会使用这些信息,且会写入到你的每一次提交中,不可更改。

git config --global user.name "John Doe" 
it config --global user.email [email protected] 

注: 使用了 --global,则该命令运行后,无论你在该系统上做任何事情,Git 都会使用那些信息。若你想针对特定项目使用不同的用户名称和邮件地址,可以在特定项目目录下运行没有 --global 选项的命令进行配置。eg:

git config user.name "Tony" 
1.5.2 文本编辑器

Git 需要你输入信息时会调用文本编辑器,默认为 Vim,你可以通过
git config --global core.editor editorname 来进行配置。则调用时会调用你配置过的文本编辑器。

1.5.3 检查配置信息

git config --list可查看当前 Git 的全部配置。
git config 来查看某一项配置,例如:git config user.name

1.5.4 获取帮助

当你使用 Git 需要帮助时,以下三种方法可以找到 Git 命令的使用手册:

git help 
git  --help
man git-

例如:
git help config 可获得 config 命令的手册。

本文参考:https://git-scm.com/book/zh/v2

你可能感兴趣的:(Git 学习笔记之起步篇——相关知识简介)