Git入门

Git基础

1.1 快照,而非差异

Git与其他版本控制系统最大的不同在于其对待数据的方式。从概念上来说,其他大多数版本控制系统以文件变化列表的方式存储信息,这类系统(CVS、Subversion、Perforce、Bazaar等)将其存储的信息视为一组文件以及对这些文件随时间变化所做出的变更。

 

 

而Git更像是将数据是为一个微型文件系统的一组快照。每次提交或在Git中保存项目的状态时,Git基本上会抓取一张所有文件的当前状态的快照,然后存储一个指向该快照的引用。处于效率的考虑,如果文件没有发生改动,Git则不会重新保存文件,而只是留下一个指向先前已保存过的相同文件的链接。Git更多的是将数据作为一个快照流。

 

 

1.2 几乎所有的操作都在本地执行

Git中的大部分操作只需要用到本地文件和资源,一般无需从网络中的其他计算机获取信息。如果是集中式版本控制系统,多数操作都有网络延时开销。

1.3 Git的完整性

Git中的所有数据在存储前都会执行校验和计算,随后以校验和来引用对应的数据。Git所采用的校验和机制叫做SHA-1散列。

1.4 Git通常只增加数据

当你在Git中进行处理时,基本上所有的操作都是只是向Git数据库中添加数据。很难让系统执行无法撤销的操作或是把数据搞丢。

1.5 三种状态

在Git中,文件可以处于以下三种状态之一:已提交(committed)、已修改(modified)、和已暂存(staged)。已提交表示数据已经倍安全地存入本地数据库中。已修改表示已经改动了文件,但尚未提交到数据库。已暂存表示对已修改地文件地当前版本做出了标识并将其加入了下一次要提交地快照中。由此便引入了Git项目中地三个主要地区域:Git目录、工作目录以及暂存区。

 

Git目录是Git保存项目元数据和对象数据库的地方。这是Git最重要的部分,也是从其他计算机中克隆仓库时要复制的内容。

工作目录是项目某个版本的单次检出。这些文件从Git目录下的压缩数据库内被提取出,放置在磁盘上以供使用或修改。
暂存区是一个文件,一般位于Git目录中。它保存了下次所要提交内容的相关信息。有时候它也被称为“索引”,不过通常还是叫作暂存区。


Git的基本工作流如下:
(1)修改工作目录中的文件;
(2)暂存文件,将这些文件的快照加入暂存区;
(3)提交暂存区中的文件,将快照永久地保存在Git目录中。
如果一个文件的某个特定版本出现在Git目录中,该版本的文件就被认为处于已提交状态。如果这个文件已被修改,并且已被放入暂存区,那么它就处于已暂存状态。如果在上次检出之后文件发生了变更,但并没有被暂存,则处于已修改状态。

 1.6 安装Git

1.6.1 在LInux上安装

可以通过二进制安装程序来安装Git,通常借助所使用的发行版中的软件包管理工具,以Fedora为例,可以使用yum

$ sudo yum install git-all

要是像Ubuntu这种基于Debian的发行版,可以使用apt-get:

$ sudo apt-get install git-all

1.6.2 Mac上安装

在Mac上安装的方法不止一种。最简单的可能就是安装Xcode命令行工具。如果你想要更新的版本,也可以通过二进制安装程序进行安装。在Git的网站上就能找到相应的安装程序。

1/6/3 Windows上安装

方法也有好几种。官方版本可以在Git的网站上下载。要注意这是一个叫做Git for Windows的项目,该项目独立于Git。

另一种方法就是安装Windows版的GitHub。这个安装程序里面包含命令行版本的Git,也包含GUI。

 

1.6.3 源码安装

 

1.7 Git的首次配置

安装好之后,需要自定义一下Git环境。

Git包含一个叫做git config的工具,可以用来获取和设置配置变量。

1.7.1 用户身份

安装好Git 的第一件事就是设置用户名和电子邮件地址。这个非常重要,因为你每一次提交都需要用到这些信息,而且还会被写入到所创建的提交中,不可更改。

设置命令如下:

$ git config --global user.name "John Doe" 

$ git config --global user.emall johndoe@example.com

如果传入了--global选项,那只需要设置一次就好,如果你想在某个项目中使用不同的用户名或电子邮件地址,可以在项目中使用不带--global选项的命令。

当然,很多图形界面工具首次运行会帮你完成以上设置。

 

1.7.2 个人编辑器

设置好身份之后,就可以配置默认的文本编辑器了,当Git需要輸入消息的时候会用到这个编辑器。如果没有配置,Git会使用系统默认的编辑器。

如果你想使用不同的文本编辑器,比如Emacs,可以执行以下命令

$ git config --global core.editor emacs

在Windows系统中,如果你想使用不同的文本编辑器,例如Notepad++,可以执行下列操作。

在x86系统上:

$ git config --global core.editor "'C:/Program Files/Notepad++.exe' -multiInst -nosession"

在x64系统上:

$ git config --global core.editor "'C:/Program Files(x86)/Notepad++.exe' -multiInst"

注意:替换你自己电脑的文本编辑器路径!

 

1.7.3 检查个人设置

如果你想查看自己的设置,可以通过执行 git config --list命令来列出当前Git可以找到的所有设置。

可以通过git config <key>来查看Git中当前某个键的值。

1.8 获取帮助

有以下三种方法可以查看Git任何命令的帮助页面。

$ git help <verb>
$ git <verb> --help
$ man git-<verb>

例如,可以执行以下命令获得config命令的帮助信息。

$ git help config

 

完。

 

posted @ 2022-01-05 15:22  禅主  阅读(42)  评论(0编辑  收藏  举报