03 Git初始化仓库
1.初始化仓库
通常有两种获取 Git 项目仓库的方式:
- 将尚未进行版本控制的本地目录转换为 Git 仓库;
- 从其它服务器 克隆 一个已存在的 Git 仓库。
两种方式都会在你的本地机器上得到一个工作就绪的 Git 仓库。
1.1 方法一:在已存在目录中初始化仓库
$ mkdir test
$ cd test
$ git init
1.2 方法二:克隆现有的仓库
从 GitHub 等网站克隆仓库,进入仓库:
$ git clone https://github.com/zxzsk/linux-cmd.git
$ cd linux-cmd
查看当前仓库的远程地址:
$ git remote -v

2.仓库目录
所有仓库目录中都有一个 .git
目录

.git
目录记录快照和配置信息,它是 Git 自动生成和管理的。请勿删除和编辑其中文件!
[!WARNING]
如果不慎删除
.git
目录,linux-cmd
目录将失去 Git 仓库的所有功能,变回普通目录。
了解一下 .git
目录的结构

虽然用不上
.git
├── HEAD # 指向当前分支的最新提交
├── config # 仓库的配置信息
├── objects/ # 存储提交、树和文件对象
├── refs/ # 分支和标签的引用信息
└── logs/ # 提交历史和操作日志
仓库中,除了 .git
目录以及 .gitignore
文件,其余都是你正在做的项目文件。git中有个名词叫做工作区。

此处的 my-website/
和 README.md
就是工作区,被 Git 管理,存在历史快照。当你不小心改乱了其中的文件,可以通过 Git 命令回到某个历史版本!
3. 存档原理
3.1 三个区域
Git 的操作围绕是围绕 工作区、暂存区、版本库 展开的

其中暂存区和版本库无法在仓库目录中直观的看到,只知道数据保存在 .git
目录中。工作区是直接看到的,并且需要我们去编辑的目录。

3.2 基于快照
每次提交时,Git 会为所有文件创建一个快照。如果文件未修改,Git 只会存储指向之前快照的引用。
