如何使用git的reset功能重置代码

在我前面的文章中,介绍了如何删除不想要的commit,这里的功能 就是借助git reset --soft

https://www.cnblogs.com/zhaotianff/p/13860307.html

 

git reset的作用是将仓库重置为指定的commit

简单来说,执行git reset,会将指定commit前面所有的commit都重置。

但git reset这个操作仅限于本地,不会影响服务器上的commit

 

例如我有如下提交

 commit 1commit id为 d93024409d3dd8f7af63faeddf5df9ef9cfdbd01

 

我们将commit 1进行reset,输入

1 git reset d93024409d3dd8f7af63faeddf5df9ef9cfdbd01

 

即可将分支头变成commit 1,如下所示

 

 

 

 

使用git reset进行重置时,主要有以下几种常用参数:

 

 

--soft

将分支重置,并将这些分支修改后的文件添加到索引文件中。

像平常我们提交时,需要先使用git add命令,将修改的文件添加到索引文件中,然后再调用git commit 进行提交。

 

还是以前面的分支为例,我们输入

1 git reset --soft d93024409d3dd8f7af63faeddf5df9ef9cfdbd01

 

然后再输入git status

 

可以看到文件是被索引状态,此时可以直接进行git commit操作

 

--mixed(默认选项)

将分支重置,但是不将这些分支修改后的文件添加到索引文件中

我们输入

1 git reset --mixed d93024409d3dd8f7af63faeddf5df9ef9cfdbd01

或者直接输入

1  git reset f4d46d217dc4f01ac2fe66038c5e8091cb369d57

 

 

然后再输入git status

 

可以看到文件并没有被索引 ,需要再调用git add <file> 才行执行git commit操作。

 

--hard

将分支重置,并且不保留这些分支修改的文件

我们输入

1 git reset --hard d93024409d3dd8f7af63faeddf5df9ef9cfdbd01

 

再输入git status

 

 

 

还有其它两种选项--merge--keep,这里不做详细介绍。可以访问以下链接自行学习:

https://git-scm.com/docs/git-reset#Documentation/git-reset.txt---hard

 

 

我们在Visual Studio中对git reset功能进行演示。

 

首先创建三次提交,分别为commit 1、commit 2、commit 3。每次提交都增加一行代码。

 

 

 

 

点击查看所有提交

 

然后在commit 1上右键,选择重置->保留更改

 

在左侧的Git更改里看到commit 2commit 3修改的文件

 

 


 

注意:为什么Visual Studio中没有--soft选项,因为在Visual Studio中,可以直接通过按钮进行提交并推送,所以省略了--soft选项。

 


 

 

当我们右键执行重置->删除更改

Visual Studio会有一个提示

 

 我们点击 后,可以看到在左侧的列表并不会看到任何修改,因为git reset --hard不会保留这些修改。

 

posted @   zhaotianff  阅读(11)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示