Git必知必会基础(11):撤销操作(含reset)

时间:2024-01-22 16:00:41

 

数据准备

Git必知必会基础(11):撤销操作(含reset)_git

 

说明:

下面对file的操作,都可以用通配符

git add <file>...

比如:git add *.txt

 

git restore <file>...

比如:git restore --staged *.txt

 

修改文件(已提交过,文件已在本地仓库中)

撤销:对工作区修改

修改文件内容,可以看到master -> origin的颜色变了

Git必知必会基础(11):撤销操作(含reset)_git_02

 

此时文件在工作区,根据上图提示,撤销修改:git restore qzcsbj.txt

Git必知必会基础(11):撤销操作(含reset)_git_03

 

撤销add:工作区 -> 暂存区

准备数据

Git必知必会基础(11):撤销操作(含reset)_工作区_04

 

git restore --staged qzcsbj.txt

Git必知必会基础(11):撤销操作(含reset)_工作区_05

 

撤销commit:重新commit

准备数据

Git必知必会基础(11):撤销操作(含reset)_暂存区_06

 

删除上一次提交,重新提交,比如:修改-m的内容,git commit --amend -m "update qzcsbj.txt add 666"

Git必知必会基础(11):撤销操作(含reset)_git_07

 

和上面对比发现,ebc6ec1这次比较被删除了

Git必知必会基础(11):撤销操作(含reset)_暂存区_08

 

撤销commit:本地仓库

回到上一次版本,保留工作区和暂存区

git reset --soft f198af0

可以看下面新增文件的示例

 

新增文件(未提交过,文件不在本地仓库中) 

撤销:对工作区修改

工作区新增test.txt文件

Git必知必会基础(11):撤销操作(含reset)_git_09

 

直接删除文件:rm test.txt

Git必知必会基础(11):撤销操作(含reset)_git_10

 

 

撤销add:工作区 -> 暂存区

准备数据

Git必知必会基础(11):撤销操作(含reset)_工作区_11

 

git restore --staged qzcsbj.txt

Git必知必会基础(11):撤销操作(含reset)_git_12

 

撤销commit:重新commit

git commit -m "add test.txt"

Git必知必会基础(11):撤销操作(含reset)_暂存区_13

 

Git必知必会基础(11):撤销操作(含reset)_git_14

 

删除上一次提交,重新提交,比如:修改-m的内容,git commit --amend -m "add file test.txt"

Git必知必会基础(11):撤销操作(含reset)_工作区_15

 

撤销commit:本地仓库

回到上一次版本,保留工作区和暂存区

git reset --soft 477cdb7

Git必知必会基础(11):撤销操作(含reset)_git_16

 

关于撤销提交(也就是分支重置)

撤销上一次提交,回退到Untracked(工作区),这会把 HEAD 指针移回上一个提交(HEAD~1),并清除最后一次提交的内容
git reset HEAD~1

撤回两次或者n次
git reset HEAD~2

回到指定commit的状态
git reset --hard <commit_SHA-1>

 

git reset --soft:工作区和暂存区的内容不会改变,git reset --soft 477cdb7

git reset --mixed (默认选项):将HEAD指向指定的提交,暂存区的内容随之改变,工作区内容不变

git reset --hard,将HEAD指向指定的提交,暂存区跟工作区都会改变

git reset --hard HEAD,回退到最近一次提交

分支重置:git fetch --all && git reset --hard origin/master

参数

--mixed
不删除工作空间改动代码,撤销 commit,并撤销 git add . 操作

git reset --mixed HEAD^ 效果等同 git reset HEAD^

--soft
不删除工作空间改动代码,撤销commit,不撤销git add .

--hard
删除工作空间改动代码,撤销commit,撤销git add .

--amend
修改提交日志,进入vim编辑器,改完:wq即可,新版本直接-m指定新的提交日志

 

__EOF__


作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等