git reset 三种使用方法( -- hard \ soft \ mixed )

硅谷探秘者 git 101 0 0

参数:

参数 功能 场景
–hard 清空工作区与缓存区 放弃目标版本后所有的修改
–soft 保留工作区与缓存区,但是把版本之间的差异存放在缓存区 合并多个commit
–mixed(或缺省) 保留工作区清空缓存区,把版本之间的差异存放在工作区 1、有错误的commit需要修改;2、git reset HEAD清空缓存区

— hard

[root@mq1 a]# git init
初始化空的 Git 版本库于 /root/a/.git/
[root@mq1 a]# vi a.txt
[root@mq1 a]# cat a.txt 
1
[root@mq1 a]# git add ./a.txt
[root@mq1 a]# git commit -m "a"
[master(根提交) 30ace42] a
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt
[root@mq1 a]# vi a.txt 
[root@mq1 a]# cat a.txt 
1
2
[root@mq1 a]# git add ./a.txt
[root@mq1 a]# vi a.txt 
[root@mq1 a]# cat a.txt 
1
2
3
[root@mq1 a]# git diff --cached
diff --git a/a.txt b/a.txt
index d00491f..1191247 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,2 @@
 1
+2
[root@mq1 a]# git diff 
diff --git a/a.txt b/a.txt
index 1191247..01e79c3 100644
--- a/a.txt
+++ b/a.txt
@@ -1,2 +1,3 @@
 1
 2
+3
[root@mq1 a]# git reset --hard HEAD
HEAD 现在位于 30ace42 a
[root@mq1 a]# git diff --cached
[root@mq1 a]# git diff
[root@mq1 a]# cat a.txt 
1
[root@mq1 a]#

—soft

[root@mq1 a]# git init
初始化空的 Git 版本库于 /root/a/.git/
[root@mq1 a]# vi a.txt
[root@mq1 a]# cat a.txt 
1
[root@mq1 a]# git add ./a.txt
[root@mq1 a]# git commit -m "a"
[master(根提交) 4cf9445] a
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt
[root@mq1 a]# vi a.txt 
[root@mq1 a]# cat a.txt 
1
2
[root@mq1 a]# git add ./a.txt
[root@mq1 a]# git commit -m "a2"
[master 54d3e3f] a2
 1 file changed, 1 insertion(+)
[root@mq1 a]# vi a.txt 
[root@mq1 a]# cat a.txt
1
2
3
[root@mq1 a]# git add ./a.txt
[root@mq1 a]# vi a.txt 
[root@mq1 a]# cat a.txt 
1
2
3
4
[root@mq1 a]# git diff --cached
diff --git a/a.txt b/a.txt
index 1191247..01e79c3 100644
--- a/a.txt
+++ b/a.txt
@@ -1,2 +1,3 @@
 1
 2
+3
[root@mq1 a]# git diff
diff --git a/a.txt b/a.txt
index 01e79c3..94ebaf9 100644
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 1
 2
 3
+4
[root@mq1 a]# git log
commit 54d3e3f3b9609747e343c288b49d0f2580cb4578
Author: jiajiajia <18438301593@163.com>
Date:   Thu Dec 8 09:23:31 2022 +0800

    a2

commit 4cf94452ee4644798d871f306a013bbaeff63265
Author: jiajiajia <18438301593@163.com>
Date:   Thu Dec 8 09:23:04 2022 +0800

    a
[root@mq1 a]# git reset --soft 4cf94452ee4644798d871f306a013bbaeff63265 
[root@mq1 a]# git diff --cached
diff --git a/a.txt b/a.txt
index d00491f..01e79c3 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,3 @@
 1
+2
+3
[root@mq1 a]# git diff
diff --git a/a.txt b/a.txt
index 01e79c3..94ebaf9 100644
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 1
 2
 3
+4
[root@mq1 a]# cat a.txt 
1
2
3
4
[root@mq1 a]#

—mixed

[root@mq1 a]# git init
初始化空的 Git 版本库于 /root/a/.git/
[root@mq1 a]# vi a.txt
[root@mq1 a]# cat a.txt 
1
[root@mq1 a]# git add a.txt
[root@mq1 a]# git commit -m "a"
[master(根提交) bde2a3f] a
 1 file changed, 1 insertion(+)
 create mode 100644 a.txt
[root@mq1 a]# vi a.txt 
[root@mq1 a]# cat a.txt 
1
2
[root@mq1 a]# git add ./a.txt
[root@mq1 a]# git commit -m "a2"
[master 03429a1] a2
 1 file changed, 1 insertion(+)
[root@mq1 a]# vi a.txt 
[root@mq1 a]# cat ./a.txt 
1
2
3
[root@mq1 a]# git add ./a.txt
[root@mq1 a]# vi a.txt 
[root@mq1 a]# cat a.txt 
1
2
3
4
[root@mq1 a]# git diff --cached
diff --git a/a.txt b/a.txt
index 1191247..01e79c3 100644
--- a/a.txt
+++ b/a.txt
@@ -1,2 +1,3 @@
 1
 2
+3
[root@mq1 a]# git diff
diff --git a/a.txt b/a.txt
index 01e79c3..94ebaf9 100644
--- a/a.txt
+++ b/a.txt
@@ -1,3 +1,4 @@
 1
 2
 3
+4
[root@mq1 a]# git log
commit 03429a146eba26059eaf5cacac30ab07612aaadf
Author: jiajiajia <18438301593@163.com>
Date:   Thu Dec 8 09:32:46 2022 +0800

    a2

commit bde2a3fe0c1072c1f08230cb5a9b7f7c076a8f4a
Author: jiajiajia <18438301593@163.com>
Date:   Thu Dec 8 09:32:15 2022 +0800

    a
[root@mq1 a]# git reset --mixed bde2a3fe0c1072c1f08230cb5a9b7f7c076a8f4a
重置后撤出暂存区的变更:
M       a.txt
[root@mq1 a]# git diff --cached
[root@mq1 a]# git diff
diff --git a/a.txt b/a.txt
index d00491f..94ebaf9 100644
--- a/a.txt
+++ b/a.txt
@@ -1 +1,4 @@
 1
+2
+3
+4
[root@mq1 a]# cat a.txt 
1
2
3
4
[root@mq1 a]#
猜你喜欢
official 59 @mq1~]#cda [root@mq1a]#gitinit#初始化git 初始化空的Git版本库于/root/a/.git/ [root@mq1a]#via.txt#创建文件,写入内容1 [root@mq
分布式项目管理工具 902 git&github学习使笔记
official 67 gitcheckout—file命令: [root@mq1~]#mkdira [root@mq1~]#cda [root@mq1a]#gitinit#初始化版本库 初始化空的Git版本库于
工具 769 原文链接:https://blog.csdn.net/web_csdn_share/article/details/79243308几个专名词的译名如下 Workspace:工作区 Index
工具 908 eclipse中内置了git插件,不在需要安装eclipse中把工程初始化本地库右击项目-team-ShareProject-Git-next-选中
git 58 如果只有本地分支存在,则直接删除本地分支即可。如果本地分支和远程分支都存在,则先删除本地分支然后再删除远程分支。删除本地分支在git中,删除本地分支并不会影响远程仓库中的任何分支。删除本地分支的命令
工具 902 finish后eclipse右下会有提交进度出现如下则说明提交远程库成功刷新github,发现推送成功下一篇:eclipse中使Git管理项目工程代码(3)将远程库的工程克隆到本地
weblog 558 拉取项目到本地gitcloneurl本地创建dev分支,并拉去远程分支到本地:gitcheckout-bdev(本地分支名称)origin/dev(远程分支名称)把某个分支上的内容都拉取到本地:gitpullorigindev(远程分支名称)把远程分支拉到本地:gitfetchorigindev(dev为远程仓库的分支名)提交远程库:gitpushoriginmaster(分支名)
归档
2018年11月  12 2018年12月  33 2019年01月  28 2019年02月  28 2019年03月  32 2019年04月  27 2019年05月  33 2019年06月  6 2019年07月  12 2019年08月  12 2019年09月  21 2019年10月  8 2019年11月  15 2019年12月  25 2020年01月  9 2020年02月  5 2020年03月  16 2020年04月  4 2020年06月  1 2020年07月  7 2020年08月  13 2020年09月  9 2020年10月  5 2020年12月  3 2021年01月  1 2021年02月  5 2021年03月  7 2021年04月  4 2021年05月  4 2021年06月  1 2021年07月  7 2021年08月  2 2021年09月  8 2021年10月  9 2021年11月  16 2021年12月  14 2022年01月  7 2022年05月  1 2022年08月  3 2022年09月  2 2022年10月  2 2022年12月  5 2023年01月  3
标签
算法基础 linux 前端 c++ 数据结构 框架 数据库 计算机基础 储备知识 java基础 ASM 其他 深入理解java虚拟机 nginx git 消息中间件 搜索 maven redis docker dubbo vue 导入导出 软件使用 idea插件 协议 无聊的知识 jenkins springboot mqtt协议 keepalived minio mysql ensp 网络基础 xxl-job rabbitmq haproxy
目录
没有一个冬天不可逾越,没有一个春天不会来临。最慢的步伐不是跬步,而是徘徊,最快的脚步不是冲刺,而是坚持。