如何使用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 1 的commit 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 2和commit 3修改的文件
注意:为什么Visual Studio中没有--soft选项,因为在Visual Studio中,可以直接通过按钮进行提交并推送,所以省略了--soft选项。
当我们右键执行重置->删除更改时
Visual Studio会有一个提示
我们点击 是后,可以看到在左侧的列表并不会看到任何修改,因为git reset --hard不会保留这些修改。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构