文章

《精通git第二版》读书笔记·ch01 版本控制系统和git

《精通git第二版》读书笔记·ch01 版本控制系统和git

版本控制

版本控制系统,指记录文件内容变化,以便将来查阅特定版本修订情况的系统。

版本控制系统分以下几类

  • 本地版本控制系统。大多采用简单的数据库来记录文件的历次更新差异,例如RCS。
  • 集中化版本控制系统。使用集中管理的服务器保存所有文件修订版本,协同工作的人通过客户端连接到服务器取出最新的文件或提交更新,例如CVS、Subversion、Perfoce等。
  • 分布式版本控制系统。客户端将代码仓库完整地镜像下来,例如Git、Mercurial、Bazaar、Darcs等。可以指定不同的远端代码仓库,从而与不同的小组协作

复制整个目录来保存不同的版本,或者加上备份时间以区别不同版本。这种方式特别容易犯错

git

Linux Torvalds基于BitKeeper的经验教训开发了git,主要有以下特点:

  • 直接记录快照。大部分系统记录的信息为基本文件和每个文件随时间累积的差异,git则把数据看作对一个小型文件系统的一组快照。
  • 几乎所有操作都是本地执行。
  • 使用校验和(SHA-1散列)保存文件信息以保证完整性。
  • 一般只会往数据库中添加数据,很少清楚数据。

git中的文件有三种状态

  • 已提交(committed)。数据已经保存到版本库中。
  • 已修改(modified)。修改了文件,未保存到版本库中。
  • 已暂存(staged)。对修改文件的当前版本做了标记,用于包含在下次提交的快照中。

对应以下三个工作区域

  • git仓库。保存元数据和对象数据库的地方。
  • 工作目录。对项目某个版本独立提取的内容。
  • 暂存区域。一个文件,记录了下次将提交的文件列表信息。

git的基本工作流程为

  • 在工作目录修改文件。
  • 将文件快照放入暂存区域。
  • 提交更新,将快照永久存储到git仓库。

建议优先使用命令行,选择性使用GUI

初次运行git的配置

git config用来设置git的配置变量,存储在3个不同的位置

  • /etc/gitconfig。系统上的通用配置,用--system参数打开。
  • ~/.gitconfig, ~/.config/git/config, $HOME/.gitconfig(WIN)。当前用户的配置,用--global打开。
  • 仓库目录的.git/config。当前仓库的配置。

每一个级别的配置覆盖上一级别的配置

考虑初始化时执行以下配置

1
2
3
4
5
git config --global user.name "xxx"
git config --global user.email "xxx"
git config --global core.editor emacs # 修改编辑器为emacs
git config --list # 查看配置信息
git config user.name # 查看某一项配置

irc.freenode.net#git或者#github寻求帮助。

参考

《精通git第二版》

本文由作者按照 CC BY 4.0 进行授权

热门标签