标签:源码 str 笔记 -- tree 切换 reset 没有 完成
三个区的概念:
working tree指工作区
index指暂存区
HEAD指最近的版本库,即最近一次commit之后的版本
diff 操作
git diff:是查看working tree与index file的差别的。
git diff --cached:是查看index file与commit的差别的。
git diff HEAD:是查看working tree和commit的差别的。(你一定没有忘记,HEAD代表的是最近的一次commit的信息)
reset 操作
git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,head和index信息都会被退回
git reset --soft:回退到某个版本,只回退了head的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!
关于branch
branch不只是针对版本区,如果切换branch,工作区和暂存区,都会发生变化的。所以如果有工作没有commit,则不能执行rebase、checkout等操作。如果一定要执行,则要使用git stash命令把未commit的工作暂时”搁置“,等完成了相关执行,再用git stash pop命令回来继续工作。
标签:源码 str 笔记 -- tree 切换 reset 没有 完成
原文地址:http://www.cnblogs.com/JMLiu/p/7240218.html