Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Git 回滚代码的正确姿势 git revert 和 git reset 的区别

Git 回滚代码的正确姿势 git revert 和 git reset 的区别

作者头像
BY
发布于 2018-05-11 07:19:42
发布于 2018-05-11 07:19:42
2.7K00
代码可运行
举报
文章被收录于专栏:BY的专栏BY的专栏
运行总次数:0
代码可运行

并不适合阅读的个人文档。

git revertgit reset 的区别

先看图:

sourceTreerevert 译为提交回滚,作用为忽略你指定的版本,然后提交一个新的版本。新的版本中已近删除了你所指定的版本。

reset重置到这次提交,将内容重置到指定的版本。git reset 命令后面是需要加2种参数的:–-hard–-soft。这条命令默认情况下是 -–soft

执行上述命令时,这该条commit号之 后(时间作为参考点)的所有commit的修改都会退回到git缓冲区中。使用git status 命令可以在缓冲区中看到这些修改。而如果加上-–hard参数,则缓冲区中不会存储这些修改,git会直接丢弃这部分内容。可以使用 git push origin HEAD --force 强制将分区内容推送到远程服务器

代码回退

默认参数 -soft,所有commit的修改都会退回到git缓冲区 参数--hard,所有commit的修改直接丢弃

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git reset --hard HEAD^        回退到上个版本
$ git reset --hard commit_id    退到/进到 指定commit_id

推送到远程

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git push origin HEAD --force
可以吃的后悔药->版本穿梭

当你回滚之后,又后悔了,想恢复到新的版本怎么办?

git reflog打印你记录你的每一次操作记录

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git reflog

输出:
c7edbfe HEAD@{0}: reset: moving to c7edbfefab1bdbef6cb60d2a7bb97aa80f022687
470e9c2 HEAD@{1}: reset: moving to 470e9c2
b45959e HEAD@{2}: revert: Revert "add img"
470e9c2 HEAD@{3}: reset: moving to 470e9c2
2c26183 HEAD@{4}: reset: moving to 2c26183
0f67bb7 HEAD@{5}: revert: Revert "add img"

找到你操作的id如:b45959e,就可以回退到这个版本

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ git reset --hard b45959e
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.02.16 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
GIT学习----第三节:版本回退
学习目的 git log: 查看版本信息; git log --pretty=oneline: 简化查看到的版本信息; git reset --hard HEAD^: 版本回退到上个版本; git reset --hard HEAD^^: 版本回退到上上个版本; git reset --hard HEAD~100: 版本回退到100个版本; git reset --hard “commit id”: 版本回退到具体的版本; cat : 查看当前版本的内容; git reflog: 查看"commit id"
Rattenking
2021/01/30
2870
Git 回滚到某个 commit 上及返回主分支
首先要用 git log 查看回到的版本,然后用以下命令,将本地代码回退到某个版本:
宋天伦
2023/10/18
6650
记一次测试环境git翻车经历
本来想拉一个功能分支进行新的功能开发,合并代码发现没有冲突居然有文件被修改了,贸然选择最近的一次回滚提交,没想到不假思索的push -f 导致一部分dev主干的代码不见了。
查拉图斯特拉说
2023/12/09
2080
记一次测试环境git翻车经历
没想到,Git居然有3种“后悔药”!
小明同学作为新人加入到一个新的项目组中做开发,在项目的迭代开发中,小明勤勤恳恳的写代码,直到有一次…
洋仔聊编程
2020/08/24
1K0
没想到,Git居然有3种“后悔药”!
关于git回退版本的一点心得
我由于开发中不小心在master分支上开发,忘记了切换分支,最后我直接在master分支上提交,push,在开发分支上merge了master分支。
蓓蕾心晴
2019/05/15
2.7K0
关于git回退版本的一点心得
IDEA中Git版本回退终极指南:Reset与Revert双方案详解
作为开发者,代码版本回退是日常高频操作。IntelliJ IDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择困惑。本文将解析Reset与Revert两种方案的操作细节及避坑指南。
Java微观世界
2025/03/05
4.9K1
IDEA中Git版本回退终极指南:Reset与Revert双方案详解
时光穿梭机-Git版本回退
现在,对于多数程序员来讲,Git相关需要学会修改提交到Git版本库,修改文件如下:
php007
2019/10/10
3850
时光穿梭机-Git版本回退
Git基础:利用reset重置命令恢复commit代码及其扩展
有时候代码写完 commit 了,发现用错分支了,就很尴尬,这时候可以用 reset 重置命令,将代码恢复到指定的版本。
德顺
2021/06/24
9.9K0
Git详细教程 – Git版本回退
通过《Git详细教程 - 初识》、《Git详细教程 – Git的安装》和《Git详细教程 – 版本库的创建和添加内容到版本库》课程,相信大家对Git已经非常熟悉了,Git的由来,作用等等,之前讲了创建版本和提交内容,今天来讲讲,如果提交内容时错误的,想要回滚到上一个版本怎么做了?
Javanx
2019/09/05
5720
Git详细教程 – Git版本回退
head/reset/revert/rebase代码回滚全解:git提交记录的背后原理
多人合作程序开发的过程中,我们有时会出现错误提交的情况,此时我们希望能撤销提交操作,让程序回到提交前的样子,操作有:
周陆军博客
2023/04/09
3.1K0
Git那些事系列:从业务场景到高级技巧的完整指南(三)
在一个岁月静好的一天,笔者使用一个开发分支在测试环境做编包和部署,发布的时候突然报错,查看原因是某个配置文件异常,一些部署相关代码被删除了!
粲然忧生
2023/10/08
4730
Git 中常用的 4 个命令
使用 Git 进行版本管理时,肯定不只做提交,有时候也会需要回退修改,并且在回退的基础上进行重新提交,这时候有几个常用的命令就需要用到了,下面分别做介绍。
sylan215
2020/02/29
7190
[Git] 如何进行版本回退
版本控制系统最重要的能力之一,就是能够轻松地在项目的不同历史版本之间切换。有时,你可能发现最近的修改引入了严重问题,或者需要回到之前的某个节点重新开始。这时,“版本回退”功能就派上用场了。
DevKevin
2025/05/30
2500
[Git] 如何进行版本回退
【Git】Git 基础命令 ( 查看提交记录 git log | 版本回滚 git reset | 撤销回滚 git reflog )
在 Git 版本库 中 , 可以查询每一次 使用 git commit 命令的提交记录 , 每次 git commit 提交都会保留一个快照 , 如果工程代码弄坏了 , 可以尝试从最近的一次 git commit 提交的快照进行恢复 ;
韩曙亮
2023/03/30
2.2K0
【Git】Git 基础命令 ( 查看提交记录 git log | 版本回滚 git reset | 撤销回滚 git reflog )
Git如何版本回退?
Git中,每次commit提交都会生成一个历史纪录。使用 git log 查看commit历史:
技术从心
2019/08/09
2.3K0
git reset 回退版本(版本穿梭)
如果创建了一个新的文件,这个文件是未跟踪的状态,那么使用 reset 回退版本时,这个新文件不会受到影响
很酷的站长
2023/01/02
1.2K0
git reset 回退版本(版本穿梭)
一文读懂Git
版本控制就是记录项目文件的历史变化。它为我们查阅日志,回退,协作等方面提供了有力的帮助。
onlythinking
2020/06/02
6770
一文读懂Git
对Git常用指令做次汇总,专治用完即忘~
‍‍这个工作流其实也是我们团队采用的工作流,这也是很多团队会采用的工作流,它会相对复杂一点,但它非常适合用来管理大型项目的发布和维护,后面笔者也会详细讲下这一块。
后台技术汇
2022/05/30
2490
对Git常用指令做次汇总,专治用完即忘~
git 使用小结大全
git reset –mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息 git reset –soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可 git reset –hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容 以下是一些reset的示例: #回退所有内容到上一个版本(HEAD回退add的版本):git reset HEAD^ #回退a.py这个文件的版本到上一个版本:git reset HEAD^ a.py #向前回退到第3个版本:git reset –soft HEAD~3 #将本地的状态回退到和远程的一样 :git reset –hard origin/master #回退到某个版本(–hard回退commit的版本) ,使用git log查询提交日志
MickyInvQ
2020/09/27
5770
学习git这一篇就够了!!!
git命令操作 本地库操作 初始化本地仓库 初始化命令 git init $ work % cd workspace $ workspace % mkdir WebService //创建文件夹 $ workspace % git init //初始化 Initialized empty Git repository in /Users/jack/work/workspace/.git/ $ workspace % 初始化后的效果 会在初始化后的目录中生成一个.git隐藏文件夹 $ workspace %
烂猪皮
2020/10/10
8120
相关推荐
GIT学习----第三节:版本回退
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验