所有用法
Git分为 工作区,暂存区,仓库
git add#把工作区内容放入暂存区
git commit#把暂存区内容提交到仓库
git diff#查看工作区与暂存区差异
git diff --cashed#查看暂存区与仓库差异
git diff HEAD#查看工作区与仓库差异
以新建文件流程从头开始
-
在工作区新建一个文件(内容为一行文字)
vim new.txt
-
查看工作区与暂存区区别==(此时暂存区没有东西)==
git diff new.txt
结果为空(没有区别)
-
将文件提交到暂存区
git add new.txt
此时暂存区内容与工作区一致,还是没有区别
-
修改工作区文件内容(添加一行)
vim new.txt
-
可以查看一下目前的所有区状态
git status
显示为:
第一个版本的new未commit
第二个修改版本的new未add+commit
(==注意此时若commit则提交的是未修改的第一版==)
各区情况:
- 工作区为修改后的两行内容
- 暂存区为第一次存入的一行内容
- 仓库为空
-
查看工作区与暂存区的区别
git diff new.txt
结果为新添加的一行
-
查看暂存区与仓库的区别
git diff --cached -- new.txt
因为仓库为空,所以结果为第一版的一行
-
查看工作区与仓库的区别
git diff HEAD -- new.txt
仓库为空,结果为修改后的两行
==到这里应该基本明白了三种diff的区别==
可以用9-10练习
-
提交在暂存区的第一个版本
git commit -m "first version"
此时工作区为修改后未add的第二版
暂存区为空
仓库为第一版
-
继续练习下面的命令,先根据自己的判断猜测结果
git status git diff --cached -- new.txt#为空 git diff HEAD -- new.txt#为后添加的一行
-
另外的两个反向命令
git checkout#撤销工作区修改,把暂存区最新版本放入工作区 git reset HEAD#把仓库最新版本放入暂存区,也可以把暂存区退回到工作区