12bet,的读书笔记

起步

版本控制系统

CVCS

CVCS(集中化的版本控制系统),如SVN,12bet,有一个单一的集中管理的服务器,保存所有文件的修订版本,所有协作的人都通过客户端连接到这台服务器,12bet,取出左心的文件或者提交更新

好处:

  1. 12博体育,每个人都可以看到项目中其他人的操作
  2. 12博体育,方便权限控制
  3. 管理和维护方便

坏处:12bet,若服务器发生故障则无法提交、无法协同工作,也有数据丢失的风险

DVCS

DVCS(分布式版本控制系统),如Git,客户端并不只提取最新版本的文件快照,而是把最原始的代码仓库完整地镜像下来。

直接快照,而非比较差异

Git 和其他版本控制系统的主要差别在于,Git 只关心文件数据的整体是否发生变化,而大多数其他系统则只关心文件内容的具体差异。

Git 并不保存文件前后变化的差异数据。实际上,Git 更像是把变化的文件作快照后,记录在一个微型的文件系统中。每次提交更新时,它会纵览一遍所有文件的指纹信息并对文件作一快照,然后保存一个指向这次快照的索引。为提高性能,若文件没有变化,Git 不会再次保存,而只对上次保存的快照作一连接

近乎所有操作都可本地执行

在 Git 中的绝大多数操作都只需要访问本地文件和资源,不用连网。但如果用 CVCS 的话,差不多所有操作都需要连接网络。

时刻保持数据完整性

在保存到 Git 之前,所有数据都要进行内容的校验和(checksum)计算,并将此结果作为数据的唯一标识和索引。Git 使用 SHA-1 算法计算数据的校验和,通过对文件的内容或目录的结构计算出一个 SHA-1 哈希值,作为指纹字符串。该字串由 40 个十六进制字符(0-9 及 a-f)组成,看起来就像是:24b9da6552252987aa493b52f8696cd6d3b00373

三种状态

对于任何一个文件,在 Git 内都只有三种状态:已提交(committed)已修改(modified)已暂存(staged)。已提交表示该文件已经被安全地保存在本地数据库中了;已修改表示修改了某个文件,但还没有提交保存;已暂存表示把已修改的文件放在下次提交时要保存的清单中。

Git 管理项目时,文件流转的三个工作区域:Git 的本地数据目录,工作目录以及暂存区域。

基本的 Git 工作流程如下所示:

  1. 在工作目录中修改某些文件。
  2. 对这些修改了的文件作快照,并保存到暂存区域。
  3. 提交更新,将保存在暂存区域的文件快照转储到 git 目录中。

初次运行 Git 前的配置

git-config命令用来配置或读取相应的工作环境变量。

这些变量可以存放在以下三个不同的地方:

  1. /etc/gitconfig文件:若使用 git config 时用 --system 选项,读写的就是这个文件。
  2. ~/.gitconfig文件:若使用 git config 时用 --global 选项,读写的就是这个文件。
  3. 当前项目的 git 目录中的配置文件(也就是工作目录中的 .git/config 文件)

仅仅针对当前项目有效。每一个级别的配置都会覆盖上层的相同配置,

查看配置信息

使用 git config --list命令检查已有的配置信息。也可以直接查阅某个环境变量的设定,只要把特定的名字跟在后面即可

获取帮助

想了解 Git 的各式工具该怎么用,可以阅读它们的使用帮助,方法有三:

  1. $ git help <verb>
  2. $ git <verb> --help
  3. $ man git-<verb>