git回退某条/多条提交记录

cpp 复制代码
git log --oneline   查看提交记录   找到要回退的前缀编码
git revert xxxx   针对普通的单次提交记录
git revert -m 1 xxxx  针对getMerage的提交记录

如果你有 多条不想要的提交 ,并且已经合并推送到远程,那么依旧不能用 reset(会把后面的提交都干掉)。

正确做法仍然是:逐条用 git revert****撤销这些不想要的 commit

下面给你几种情况的处理方式。


情况 1:多条普通提交(不是 merge)

比如你要撤销这几条:

复制代码
a8  
a5  
a3

直接逐条执行:

复制代码
git revert a8
git revert a5
git revert a3

然后:

复制代码
git push

顺序建议 从后往前 (从日志上方往下),避免冲突几率。


情况 2:要撤销的提交中有 merge commit

Merge xxx****的就是 merge commit。

撤销时要加 -m 1**,例如:**

复制代码
git revert -m 1 <merge_commit_id>

多个 merge 也一样,一个一个来。


情况 3:要撤销的提交是连续的(例如第 2、3、4 条都不要)

不用一条一条 revert,可以一次性 revert 一个区间:

找到这个区间最早的提交 old_commit****和最晚的 new_commit**。**

比如:

复制代码
a6  
a5  
a4  ← 不想要
a3  ← 不想要
a2  ← 不想要
a1

执行:

复制代码
git revert a2..a4

它会自动生成多个 revert commit。

然后:

复制代码
git push
相关推荐
摆烂且佛系15 小时前
十分钟了解Git Cherry-Pick
git
星渊澈17 小时前
从github上git clone 比较慢,如何解决。。
git·github
魔都吴所谓19 小时前
【Ubuntu】离线环境下Git LFS(deb包)安装与验证完整教程
linux·git·ubuntu
REDcker19 小时前
Git worktree:多工作区并行开发与实践
git·worktree
lifewange19 小时前
Git版本管理
大数据·git·elasticsearch
尘世壹俗人20 小时前
idea提交git版本由于中文文件名卡死不动
java·git·intellij-idea
oushaojun221 小时前
git在项目中常用的操作集合
git
qq_396227951 天前
Git 分布式版本控制
分布式·git
无限进步_1 天前
【C++】反转字符串的进阶技巧:每隔k个字符反转k个
java·开发语言·c++·git·算法·github·visual studio
Rabbit_QL1 天前
【Git 报错处理】`remote origin already exists` 是什么意思?
git