Git基本原理介绍

纸上得来终觉浅,绝知此事要躬行。

简单地说,Git 究竟是怎样的一个系统呢? 请注意接下来的内容非常重要,若你理解了 Git 的思想和基本工作原理,用起来就会知其所以然,游刃有余。 在学习 Git 时,请尽量理清你对其它版本管理系统已有的认识,如 CVS、Subversion 或 Perforce, 这样能帮助你使用工具时避免发生混淆。尽管 Git 用起来与其它的版本控制系统非常相似, 但它在对信息的存储和认知方式上却有很大差异,理解这些差异将有助于避免使用中的困惑。

  • 由于本文的受关注程度比较高,所以在这里再次说明下,本文大部分内容都是参考 “麦兜搞 IT” 的《Git 基本原理介绍》系列教程。对其中的知识点以及原理,进行了图解和实际的操作实践。记录在这里,方便自己后续查阅,以及其他人学习使用。
  • 非常感谢视频的制作者的分享,教程非常好,很受益。如果有能力观看的话,可以搭配视频一同食用,效果更佳!其次,该视频频道还有其他相关学习视频,比如 docker、Vagrant、Python 等等,非常推荐。
Git 基本原理介绍

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 基本原理介绍 - 代码仓库的初始化
  • 我们这里可以一起看下生成的 .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]"