Skip to content

Instantly share code, notes, and snippets.

@huangblue
Last active August 20, 2016 10:26
Show Gist options
  • Save huangblue/ba8573d7e8e06fa7bba61547ffdc17a2 to your computer and use it in GitHub Desktop.
Save huangblue/ba8573d7e8e06fa7bba61547ffdc17a2 to your computer and use it in GitHub Desktop.
自己对git工作机制的理解,涉及快照(snapshot)和三个区:数据库,工作区和暂存区,它们是本地的三个目录
1 快照snapshot 是某个时刻的所有文件,其中,有所有被修改文件的本身和指向未修改文件的指针
git之所以快,就是因为它时刻都在本地保持了全部文件。
2 工作区,暂存区和数据库是本地的三个区域。其中,数据库存放了所有文件,工作区存放的是修改了的文件,而暂存区则存放的是索引,被修改文件的索引,应该是指向工作区。
3 工作机制:修改文件时,将文件从数据库弄到工作区修改。修改后要添加到暂存区,添加的只是一个索引,指向工作区中相应的位置,然后可以提交到数据库中。
4 添加到暂存区用的命令是git add,提交用的是git commit
5 如果一个文件被修改,其状态转换成已修改(系统会监督),之后用git add可以添加到暂存区,最后用git commit提交到数据库。
@huangblue
Copy link
Author

这样来看,就可以理解为什么添加一个空的目录没有什么用,git add是把发生了变化的文件添加到暂存区,空的目录,虽然新建立,不在监督之列。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment