Git基本原理介绍
纸上得来终觉浅,绝知此事要躬行。
简单地说,Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余。 在学习 Git 时,请尽量理清你对其它版本管理系统已有的认识,如 CVS、Subversion 或 Perforce, 这样能帮助你使用工具时避免发生混淆。尽管 Git 用起来与其它的版本控制系统非常相似, 但它在对信息的存储和认知方式上却有很大差异,理解这些差异将有助于避免使用中的困惑。
- 由于本文的受关注程度比较高,所以在这里再次说明下,本文大部分内容都是参考 “麦兜搞 IT” 的《Git 基本原理介绍》系列教程。对其中的知识点以及原理,进行了图解和实际的操作实践。记录在这里,方便自己后续查阅,以及其他人学习使用。
- 非常感谢视频的制作者的分享,教程非常好,很受益。如果有能力观看的话,可以搭配视频一同食用,效果更佳!其次,该视频频道还有其他相关学习视频,比如 docker、Vagrant、Python 等等,非常推荐。

1. Git 初始化代码仓库
执行完成了 git init 命令,究竟做了什么呢?
- 执行完成如下命令之后,我们可以得到下图所示的内容,右侧的就是 git 为我们创建的代码仓库,其中包含了用于版本管理所需要的内容。
# 左边执行 $ mkdir git-demo $ cd git-demo && git init $ rm -rf .git/hooks/*.sample 1. 右边执行 $ watch -n 1 -d find .

- 我们这里可以一起看下生成的 .git 目录的结构如何:
➜ tree .git .git ├── HEAD ├── config ├── description ├── hooks ├── info │ └── exclude ├── objects │ ├── info │ └── pack └── refs ├── heads └── tags
- [1] .git/config - 当前代码仓库本地的配置文件
- 本地配置文件(.git/config)和全局配置文件(~/.gitconfig)
- 通过执行如下命令,可以将用户配置记录到本地代码仓库的配置文件中去
- git config user.name "demo"
- git config user.email "[email protected]"