《精通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 进行授权