git revert

【git系列】git-revert含义用法选项示例详解 阅读详情

git revert用法

  • 上次学习了git reset,是用来回退某个版本的,在回退的时候commit提交日志也会回退,这次的git revrt正好相反,以一次新的提交来作为回退的方式,与指定回退的版本相互抵消来做到撤销。

  • 先看一下用法:

    git revert commitId

    用来指定撤销哪次的commit,commitId就是日志中commit后面的40位十六进制id

  • 做一下比较

    reset:

    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git log -2
    commit 850770dd060dc59ee78ab5223ff501563aa67736
    Author: xxx <xxx.com>
    Date:   Wed Jun 7 10:08:14 2017 +0800
    
      del b
    
    commit e5ef718d32687acd3ad541f5eae454c513390acb
    Author: xxx <xxx.com>
    Date:   Wed Jun 7 10:07:41 2017 +0800
    
      b
    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git reset --soft  850770dd060dc59ee78ab5223ff501563aa67736
    
    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git log -1
    commit e5ef718d32687acd3ad541f5eae454c513390acb
    Author: xxx <xxx.com>
    Date:   Wed Jun 7 10:07:41 2017 +0800
    
      b    

    可以看到reset直接把回退版本之前的版本全都撤销掉了;

    revert:

    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git log -1
    commit 79689a057631404be86eaee7e2f12c98910ffda3
    Author: xxx <xxx.com>
    Date:   Wed Jun 7 10:14:50 2017 +0800
    
      ss
    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git revert 79689a057631404be86eaee7e2f12c98910ffda3
    [master ccf39cc] Revert "ss"
    2 files changed, 1 insertion(+)
    create mode 100644 a.txt
    create mode 100644 b.txt
    
    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git log -2
    commit ccf39cc1b98b2376ba1468698f1a2976294d9fca
    Author: xxx <xxx.com>
    Date:   Wed Jun 7 10:15:03 2017 +0800
    
       Revert "ss"
    
       This reverts commit 79689a057631404be86eaee7e2f12c98910ffda3.
    
    commit 79689a057631404be86eaee7e2f12c98910ffda3
    Author: xxx <xxx.com>
    Date:   Wed Jun 7 10:14:50 2017 +0800
    
       ss     

    可以看到,revert把撤销的这次作为了一次新的提交,而且要撤销的那次还保留着;
    而且在我看来,reset是回退到某个版本之前,revert是单纯的撤销某次提交,一个偏阶段,一个偏单一.

  • 后记

    在我删除本地文件后提交远程仓库时出现了如下错误:

    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git push origin master
    To ssh://git.sankuai.com/~zhangjunbo/test.git
    ! [rejected]        master -> master (non-fast-forward)
    error: failed to push some refs to 'ssh://git@git.xxx.com/~xxx/test.git'
    hint: Updates were rejected because the tip of your current branch is behind
    hint: its remote counterpart. Integrate the remote changes (e.g.
    hint: 'git pull ...') before pushing again.
    hint: See the 'Note about fast-forwards' in 'git push --help' for details.  

    读一下发现是远程的代码跟我提交的不一样,拒绝覆盖,当然解决的方法就是利用

    git rm <file>

    这条命令来删掉本地没有的文件,然后再次提交即可.

    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git rm b.txt
    rm 'b.txt'
    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git st
    On branch master
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)
    
    deleted:    b.txt
    
    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git ci -m "del b"
    [master 850770d] del b
    1 file changed, 0 insertions(+), 0 deletions(-)
    delete mode 100644 b.txt
    [lkc@lkcdeMacBook-Pro:] ~/Desktop/Code/gitSample $ git st
    On branch master
    nothing to commit, working tree clean

    当然了下次在本地删除文件时还是直接使用git rm 比较好,这样避免了这种的错误.

git --- revert用法 比如你改代码改错了,并没有发现,叫代码提交到了github,结果队友发现了,需要将你的某次提交回退,就可以使用,使用后作为一次新的提交,可以很方便的push到github,并不会有冲突的问题。 阅读详情

相关推荐

Isaac Sim 6 利用Replicator实现高效语义分割与实例分割(实践指南5.10)

本文详细介绍了如何利用Isaac Sim 6的Replicator工具高效生成语义分割和实例分割数据集。通过虚拟环境自动标注,效率提升20倍以上,特别适用于农业机器人等计算机视觉项目。文章包含环境配置、场景构建、批量标注技巧及实例分割处理等实战指南,帮助开发者快速掌握合成数据生成技术。

weixin_42526415的博客 266

Git系列之版本回退git revert

git revert用于撤销某次提交的更改,并生成一个新的提交记录。与git reset不同,git revert不会修改提交历史,而是通过创建新的提交来撤销更改,因此适合用于公共分支(如master或main)的修复。问题:需要撤销某个提交的更改,并自定义提交消息。解决方案:使用撤销更改并编辑提交消息。实例:撤销提交abc1234的更改,并编辑提交消息。​回滚合并提交:使用回滚合并提交m5,生成m6。​修复 bug:在dev1分支上修复 bug 并提交c5。​直接合并:将修复后的dev1。

云纳星辰怀自在 2909

以高通camera 申请ion内存看dma-buf

1 fd 与ion buffer, file绑定 简单总结就是申请一个buffer,再创建一个dmabuf 结构体然后将,然后将dmabuf中得指针指向buffer,dmabuf 再传递给一个匿名的inode,获取到一个file,这样file和dmabuf绑定起来,也就和buffer关联上。然后再从进程中分配一个空闲的fd,将fd 和file囊绑定。这样就能通过fd 快速查找到buffer。file 是个全系统的,他和进程无关,但是fd 是每个进程都是自己独立的,所以再跨进程传输时只需要保证fd ...

兔兔里个花兔的博客 6444

git中revert的最简单、最直观的理解

作为初入职场的小萌新,你刚学会了怎么提交代码,就很潇洒的把自己的test-bug-fix的代码提交到了将要发布到线上生产环境的分支上,嗯……我猜你要挨打了。下辈子小心点,这次没关系,我们有revert。

WayneHu的博客 7285

手把手教你用DSP28335的PWM移相功能搞定双有源桥DAB(附完整代码)

本文详细解析了DSP28335的PWM移相功能在双有源桥DAB中的应用,包括ePWM模块的配置、移相时序原理及实战代码。通过精确的移相控制,实现DAB的高效运行和软开关,适用于车载充电机、储能系统等场景。附完整代码,助力开发者快速掌握硬件级移相技术。

weixin_30632089的博客 420

【AirSim+PX4】WSL2上运行PX4连接Airsim步骤

在 Linux 命令行中输入以下命令以添加(或改变)环境变量。注意,此处的 IP 地址应为。4.启动 sln 文件的调试以进入 UE4 编辑器,并在 Linux 中启动 PX4。

m0_53538421的博客 1505

github通过revert还原已经merge的代码

文章目录1 问题2 痛苦过程3 解决操作4 注意事项 1 问题 dev分支上出现过去删除的代码 初步定位后,是一位同事merge过旧的代码后,带着新的改动,提交了一次pr,并且此次pr已经merge到了公共分支上 2 痛苦过程 第一步只能定位到某次pr,可以看到提交了已删除的文件,同时也包含新的修复 但这个pr 能够看到很多commit,不确定,是不是要用很多commitId进行revert 第二步是去看整个项目的commit记录,希望确定是哪个commit引入的,但依然没有找到 找了一下重新出现文件

兰星_thk&try的博客 4164

python——体育收入排行2012-2019

请分析文件并读取数据,完成以下功能: 1. 某年的收入排名前若干名选手 如果输入n是2012-19之间的年份,则可以输入整数k,输出n年的前k名排名信息。如果k大于当年排名运动员人数,则输出当年所有的信息。每行一名运动员信息,以' | '间隔该行各项信息。 2. 某年属于某个运动项目的所有运动员信息,和收入总和 如果输入的是'sport'(不区分大小写),则可以继续输入一个年份201*,输出一个当年排行中的运动项目菜单,按照字符串升序排列,格式见示例,再输入运动项目对应的数字来输出该项运动当

m0_62488776的博客 2257

git/github 常规操作第四篇,如何用命令回退(回滚/还原)代码,看这篇文章就够用了

当我们代码合并错误,或者代码因为某种原因找不到了,但是在历史版本中有最完整的代码,我们要怎么回滚或回退到对应版本还原代码呢,下面就用两种方式来回退。两者有质的区别,reset后,中间的废弃版本会丢失,而revert会新建一个版本来覆盖。第一种方式:重置reset (谨慎:重置的方式不会保留废弃的提交记录)revert后:新增了一个版本四覆盖原理的版本。1、查看并找到我们要回退的版本号。1、查看并找到我们要还原的版本号。revert前:有版本一、二、三。reset前:有版本一、二、三。

weixin_43538316的博客 5632

【Bug已解决】This model‘s maximum context length is X tokens. However, you requested Y tokens 解决方案

summary_prompt = "请将以下对话历史压缩成一段简洁摘要,保留关键决策和结论:\n" + format_messages(old_part)return [{"role": "system", "content": f"此前对话摘要:{summary}"}] + recent_part这种方式能在大幅降低 token 消耗的同时,尽量保留任务推进所需的关键上下文,是目前业内做长会话 Agent 最常见的处理方式之一。方案适用场景推荐指数滑动窗口裁剪短任务,对早期历史依赖不强⭐⭐⭐。

一键难忘的博客 1万+

YOLOv8/YOLOv11目标检测系统与多目标跟踪检测系统,使用PySide6搭建目标检测系统,支持目标检测、分割、姿势估计、旋转框,用户端系统+后台管理系统可用于大论文凑工作量或毕设必备

YOLOv8/YOLOv11目标检测系统与多目标跟踪检测系统,目标检测、分割、姿势估计、obb(旋转框),用户端系统+后台管理系统开发实战,可用于大论文凑工作量或毕设必备,全网最详细教程,系统支持 目标检测、分割、姿势估计、obb(旋转框)等模型进来检测,是一个通用的目标跟踪与目标检测系统,适配多种场景如:鱼苗检测与跟踪、行人多目标跟踪、车辆多目标跟踪、牛只行为识别与跟踪、口罩佩戴检测、安全帽佩戴检测、火灾检测等。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 1万+

Git 之 revert

revert 可以撤销指定的提交内容,撤销后会生成一个新的commit。 1、两种commit: 当讨论 revert 时,需要分两种情况,因为 commit 分为两种:一种是常规的 commit,也就是使用 git commit 提交的 commit;另一种是 merge commit,在使用 git merge 合并两个分支之后,你将会得到一个新的 merge commit merge commit 和普通 commit 的不同之处在于 merge commit 包含两个 parent commi

赶路人儿 5万+

HINT: High-quality INpainting Transformer with Mask-Aware Encoding and Enhanced Attention 训练自己的数据集

HINT(高质量图像修复变换器)通过创新的掩码感知像素洗牌下采样模块(MPD)和空间激活通道注意力层(SCAL),显著提高了图像修复的质量,尤其在大面积缺失区域的情况下。实验表明,HINT在CelebA、CelebA-HQ、Places2和敦煌数据集上超越了现有的最先进模型,提升了图像的细节和结构一致性。

LJ1147517021的博客 312

git revert 用法

一、初级用法 git revert 撤销某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销,作为一次最新的提交。 git revert HEAD 撤销前一次 commit git revert HEAD^ 撤销前前一次 commit git revert commit_id (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff) git revert是提交

老农民娃哈哈的博客 3万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

git revert 报错

git revert报错 jiulongwen@ubuntu:/home/POWERSTAR/jiulongwen/k3s_t2/dehoo_dual/mboot$ git revert d13aae97ea2d5241d5fe3acf40857cf20c37e621 error: The following untracked working tree files would be over

w6028819321的专栏 3080

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【git revert】我终于真正理解了 git revert

Git revert的设计理念:尊重历史而非抹去错误 摘要: git revert常被认为反直觉,因为它不删除错误提交,而是通过新增提交来抵消影响。这种设计体现了Git的核心价值观:已发生的代码变更应被如实记录而非抹去。在协作场景中,git revert保留了完整的因果链条,确保历史可追溯、可解释。与git reset不同,revert不会修改已有提交,只是追加修正记录,这使得它成为共享分支上最安全的回滚方式。当出现冲突时,开发者需要判断的是"在当前代码基础上如何消除当初的问题",而非简

Rabbit_QL的博客 760

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

git revert是个好东西

revert大家用的比较少,很多细节可能不知晓,所以这次聊一下git revert的使用,希望大家不会用到它。

1705

git reset vs git revert

git reset vs git revert

太阳与星辰的博客 905

谈一谈git revert和revert the revert

谈谈git revert

FinixLei的专栏 (https://github.com/FinixLei) 955

Git对MR进行revert

Git对MR进行revert revert 可以取消指定的某次提交内容。 当讨论 revert 时,需要分两种情况,因为 commit 分为两种:一种是常规的 commit,也就是使用 git commit 提交的 commit;另一种是 merge commit,在使用 git merge 合并两个分支之后,你将会得到一个新的 merge commit。 merge commit 和普通 commit 的不同之处在于 merge commit 包含两个 parent commit,代表该 merge co

RunAtWorld:常常想想自己能解决什么问题 3051

一文彻底搞清git reset和revert区别

git是我们常用的版本管理工具,我们团队在合作开发项目时,时常会因为代码及文件的修改提交,导致各种各样的冲突,还有产品需求的频繁变更,致使我们不得不做出回退版本,撤回提交这样的决定,那么此时,reset和revert命令,就派上了用场! reset,revert都有撤销、回退的意思,但却各有千秋,区别还是很大的,所以该使用哪种命令一定要结合实际情况来决定,本文就是带大家搞清楚两者的区别,然后能准确快速的使用正确的命令去解决实际问题! 下面的例子中,我有3次提交: 初始状态,只有readme一个文件,内容为C

白玉梁的专栏 1万+

git revert 理解

git revert 撤销 某次操作,此次操作之前和之后的commit和history都会保留,并且把这次撤销 作为一次最新的提交 git revert HEAD 撤销前一次 commit git revert HEAD^ 撤销前前一次 commit git revert commit (比如:fa042ce57ebbe5bb9c8db709f719cec2c58ee7ff)撤销指定的版本,撤销也会作为一次提交进行保存。 git revert是提

人大神成长记2 779

当git revert遇到merge

为什么呢?因为此时git不知道要做什么。merge commit是两个分支的汇合点。本质上这两个分支地位是完全相等的。虽然从下边的图看来,似乎master是你想要的。但是话说回来,master也仅仅是个名字而已,与其他分支并无区别。另外,这个merger也不一定发生在master分支。

从零开始 7623

git revert以及revert的恢复

问题来了,rebase就是这个坑,使用rebase变基,相当于把你本地的这个分支(注意和远程上的现在侧commit_2合并的分支一个名字)再次merge一遍,但是你要注意,最新的commit是revert1,是摘除这个分支的merge请求,会导致你无论rebase多少次,这个commit_2的代码都不会出现,被revert1抵消掉了,而且会使得你本地的这个分支也被rebase掉,还需要git reflog&git reset --hard HEAD@{i}恢复。发现没冲突,而且git log已更新。

落墨画雪的博客 9921

git reset 和 revert 的区别

文章目录git reset 和 revert 的区别1. 前言2. Reset3. Revert git reset 和 revert 的区别 1. 前言 当我们在开发过程中,向 git 提交了一个记录,但后面觉得似乎提交的这个记录有些缺陷,我不想要它了,想要重置。可是重置git中存在两个命令,reset 和 revert,那么它们究竟有什么区别呢?什么时候我采用哪一个呢? 2. Reset 语法 git reset \--soft | --mixed | --hard --soft 回退时保留源码,仅

我是张跑跑 7344
上一篇: gitignore
下一篇: git分支管理
xdlkc
博客等级 码龄10年 3粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值