工作目录:也叫work tree, 就是受Git控制的文件夹,所有被跟踪记录的文件都包括在其中;
add 到 暂存区
暂存区(index或者stage):类似一个缓冲区域,临时保存你做的改动;
commit到HEAD
HEAD:指向最近一次提交后的结果
A:你本地新增的文件(服务器上没有)
C:文件的一个新拷贝
D:你本地删除的文件(服务器上还在)
M:文件的内容或者mode被修改了
R:文件名被修改了
T:文件的类型被修改了
U:文件没有被合并(你需要完成合并才能进行提交)
X:未知状态(很可能是遇到git的bug了,你可以向git提交bug report)
在man git diff-files中可以查到这些标志的说明。
这些状态标志在git的源代码的diff.h文件中被定义。
Untracked: 未跟踪, 此文件在文件夹中, 但并没有加入到git库, 不参与版本控制. 通过git add 状态变为Staged.
Unmodify: 文件已经入库, 未修改, 即版本库中的文件快照内容与文件夹中完全一致. 这种类型的文件有两种去处, 如果它被修改, 而变为Modified. 如果使用git rm移出版本库, 则成为Untracked文件
Modified: 文件已修改, 仅仅是修改, 并没有进行其他的操作. 这个文件也有两个去处, 通过git add可进入暂存staged状态, 使用git checkout 则丢弃修改过, 返回到unmodify状态, 这个git checkout即从库中取出文件, 覆盖当前修改
Staged: 暂存状态. 执行git commit则将修改同步到库中, 这时库中的文件和本地文件又变为一致, 文件为Unmodify状态. 执行git reset HEAD filename取消暂存, 文件状态为Modified
网友评论