认识Git
- 根本上来讲 Git 是一个内容寻址(content-addressable)文件系统
- Git 更像是把数据看作是对小型文件系统的一组快照。 每次你提交更新,或在 Git 中保存项目状态时,它主要对当时的全部文件制作一个快照并保存这个快照的索引。
- 为了高效,如果文件没有修改,Git 不再重新存储该文件,而是只保留一个链接指向之前存储的文件。
- Git 对待数据更像是一个快照流。
- 近乎所有操作都是本地执行
- Git 中的绝大多数操作都只需要访问本地文件和资源;
- 速度快,大部分操作看起来瞬间完成。
- 离线或者没有 VPN 时,几乎可以进行任何操作。
.git下重要文件
- HEAD 文件、(尚待创建的)index 文件,和 objects 目录、refs 目录。 这些条目是 Git 的核心组成部分。
- objects 目录存储所有数据内容;
- refs 目录存储指向数据(分支)的提交对象的指针;
- HEAD 文件指示目前被检出的分支;
- index 文件保存暂存区信息。
git 若干概念
工作区
- 工作区(Working Area):本地磁盘上的工作区
- 暂存区(Stage):是一个文件,保存了下次将提交的文件列表信息,一般在 Git 仓库目录中;也被称作“索引”。
- 本地仓库(Local Repository):本地版本库
- 远程仓库(Remote Repository):远程仓库
状态
- 未跟踪(untracked)和 已跟踪(tracked)
- 未跟踪:文件的改动不受到Git的版本控制
- 已跟踪:即被纳入版本控制的文件;只有已跟踪的文件,才会有git的其他状态。
- 初次克隆某个仓库时,工作目录中所有文件都是已跟踪且未修改的状态。
- 未修改(Origin)
- 已修改(Modified)
- 已暂存(Staged)
- 已提交(Committed)
- 已推送(Pushed)
- 要查看状态,可以用 git status 命令
git status <file>
$ git status
On branch bthss_V3.0.4
Your branch is up to date with 'origin/bthss_V3.0.4'.
nothing to commit, working tree clean