Git有三大区(工作区、暂存区、版本库)以及几个状态(untracked、unstaged、uncommited)
三个存储区状态的演变顺序
文件在各个区域间转换的命令
把文件往Git版本库里添加的时候,是分两步执行的:
第一步是用 git add
把文件添加进去,实际上就是把文件修改添加到暂存区;
第二步是用 git commit
提交更改,实际上就是把暂存区的所有内容提交到当前分支。
因为我们创建Git版本库时,Git自动为我们创建了唯一一个 master
分支,所以,现在,git commit
就是往 master
分支上提交更改。
1、打开你的项目文件夹,除了隐藏的.git文件夹,其他项目文件位于的地方便是工作区
2、在工作区新增一个文本文件,状态是
Untracked(未跟踪)
3、git
add
命令实际上就是把要提交的所有修改放到暂存区(Stage),Git便会在暂存区中生成一个该文件的索引,文件此时处于uncommited状态4 、执行
git commit
就可以一次性把暂存区的所有修改提交到分支。git diff 比较文件
git diff filepath 工作区与暂存区比较
git diff HEAD filepath 工作区与HEAD ( 当前工作分支) 比较
git diff --staged 或 --cached filepath 暂存区与HEAD比较
git diff branchName filepath 当前分支的文件与branchName 分支的文件进行比较
git diff commitId filepath 与某一次提交进行比较
仅仅删除暂存区里的文件
git rm --cache 文件名
删除暂存区和工作区的文件
git rm -f 文件名
删除错误提交的commit,也可称为版本回退
git reset有三个选项,--hard、--mixed、--soft
撤销已提交的版本库,不会修改暂存区和工作区
git reset --soft 版本库ID
撤销已提交的版本库和暂存区,不会修改工作区
git reset --mixed 版本库ID
彻底将工作区、暂存区和版本库记录恢复到指定的版本库
git reset --hard 版本库ID
相关文章:GIT工作区、暂存区、版本库之间的关系