索引区index
暂存区stage
工作区workspace(local)
git add
将修改添加到stage
git commit
将stage提交为一个commit,且本次stage和本次commit保持一致
撤销修改:
1.只在local修改(没有add操作)
git checkout ./
即可
2.local修改后,add到stage,且没有进一步修改(刚add没有继续修改)
1)
git reset HEAD --mix
(HEAD --mix可省略),撤销stage的修改(此时checkout 没用,因为stage和local一致)
2)
git checkout ./
撤销local的修改(checkout作用是用stage覆盖local,此时local和commit已经一致)
3.local修改后,add到stage,并进行进一步修改
1)
git checkout ./
撤销local的改动(既进一步的修改内容)
2)
git reset HEAD --mix
(HEAD --mix可省略),撤销stage的修改(此时checkout 没用,因为stage和local一致)
3)
git checkout ./
撤销local的修改(checkout作用是用stage覆盖local,此时local和commit已经一致)
这三步可以合成一步
git reset HEAD --hard
参考:
Git - 暂存区及撤销修改
首先看一下
Git
的工作流程
checkout
是检出的意思,作用是将某次 commit 的状态检出到工作区,它的过程是先将 HEAD 指向某个分支的最后一次 commit,然后从 commit 恢复 index,最后从 index 恢复工作区。
通常用于切换分支,创建新分支,即HEAD 从一个分支切换到另一个分支,或创建并切换到新分支。
(1)放弃工作区中的全部修改
命令:
git
checkout
.
(2)放弃工作区中某个文件的修改
在日常的
git
操作
中,
git
checkout
——检出,是我们的常用命令。最为常用的两种情形是创建分支和切换分支。
(一)基础——千里之行,始于切糕(
checkout
)
先熟悉下常用
操作
,创建分支和切换分支,也可以称为检出分支。
首先我们新建一个仓库
git
Test,然后新建文件a,为什么要用a命名呢,这里是故意为之,后面为大家揭晓分支。呵呵。或许下面的介绍会有些枯燥乏味,因为您已经对这些命令
git
commit --amend
撤销
上一次提交 并讲暂存区文件重新提交
git
checkout
-- <file> 拉取暂存区文件 并将其替换成工作区文件
git
reset HEAD -- <file> 拉取最近一次提交到版本库的文件到暂存区 改
操作
不影响工作区
git
checkout
-- <file>
该命令用于拉...
注意:
git
chekcout 是让文件回到最近一次该文件
git
commit或
git
add时的状态。
2.工作区修改了之后,提交到了暂存区(即add),如何
撤销
修改?
这里也分为两种情况:
2.1 对于该文件来说,还没有commit过一次。这时
git
reset:通常用于
撤销
当前工作区中的某些
git
add/commit
操作
,可将工作区内容
回退
到历史提交节点。
常用的工作区
回退
命令格式:
git
reset commit_id。
git
checkouout.:用于
回退
本地所有修改而未提交的文件内容。
git
checkout
.是条有风险的命令,因为它会取消本地工作区的修改(相对于暂存区),用暂存区的所有文件直接覆盖本地文件,达到回...