git reset HEAD 用法

在这里插入图片描述
【git技巧】
参考博客:https://blog.csdn.net/crjmail/article/details/100011063

git add 时,误添加不想提交的文件,如何解决?

  1. 误add所有文件
    git reset HEAD
    将所有此次修改的 file 退回到工作区

  2. 误add单个文件,只撤销部分文件
    git reset HEAD file
    将此次修改的这个 file 退回到工作区

以上操作使得被操作的文件图标从绿色变红色。

【注意】
git add 是将文件从工作区–>暂存区
git commit 是将文件从暂存区–>git本地仓库

如果 git add 一个 file 之后,又操作了该文件但未 git add ,且两次操作的地方有冲突
再 git reset HEAD file 时,文本内容将是后面的操作,而不是前面的回退

eg:
(1) 先修改 1.c 的 main 为 mai1n
$ git diff
— a/1.c
+++ b/1.c
@@ -1,4 +1,4 @@
-main
+mai1n

(2) 放到暂存区
$ git add .

(3) 再次修改 1.c 的 main 为 mai2n
$ git diff
— a/1.c
+++ b/1.c
@@ -1,4 +1,4 @@
-mai1n
+mai2n

(4) 查看 git 状态
$ git status
Changes to be committed:
modified: 1.c
Changes not staged for commit:
modified: 1.c

(5) 回退暂存区
$ git reset HEAD 1.c
Unstaged changes after reset:
M 1.c

(6) 查看状态
$ git status
Changes not staged for commit:
modified: 1.c

$ git diff
diff --git a/1.c b/1.c
— a/1.c
+++ b/1.c
@@ -1,4 +1,4 @@
-main
+mai2n

如果 git add 一个 file 之后,又操作了该文件但未 git add ,且两次操作的地方不冲突
再 git reset HEAD file 时,文本内容将是后面的操作,而不是前面的回退

(1) 修改 1.c
$ git diff
diff --git a/1.c b/1.c
index 0bd96f3…f9e2dc8 100644
— a/1.c
+++ b/1.c
@@ -1,4 +1,4 @@
hello world
-main
+main123
study

(2) 放到暂存区
$ git add .

(3) 再次修改 1.c ,在最后一行添加一行 “love”, 但是不 git add
$ git status
On branch master
Changes to be committed:
modified: 1.c
Changes not staged for commit:
modified: 1.c

$ git diff
diff --git a/1.c b/1.c
index f9e2dc8…a521094 100644
— a/1.c
+++ b/1.c
@@ -1,4 +1,4 @@
hello world
main123
study
+love

(4) 回退暂存区
$ git reset HEAD 1.c
Unstaged changes after reset:
M 1.c

$ git diff
diff --git a/1.c b/1.c
index 0bd96f3…a521094 100644
— a/1.c
+++ b/1.c
@@ -1,4 +1,4 @@
hello world
-main
+main123
study

+love

这应该是 git reset HEAD file 的一份风险点

【it rm 与 git reset的区别】
git rm:用于从工作区和索引中删除文件
git reset:用于将当前HEAD复位到指定状态。一般用于撤消之前的一些操作(如:git add,git commit等)。

git rm -f file_path
删除暂存区和分支上的文件,同时工作区也不需要

git rm --cached file_path
删除暂存区或分支上的文件, 但工作区需要使用, 只是不希望被版本控制

git reset HEAD 回退暂存区里的文件

  • 10
    点赞
  • 96
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值