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
相关推荐
C137的本贾尼15 小时前
Git基本操作(四):删除文件
git
C137的本贾尼16 小时前
撤销修改:三种场景下的“反悔”操作
git
C1161116 小时前
antdesign使用git命令clone仓库后,找不到CLAUDE.md 文件什么原因
git
BoomHe18 小时前
git Rebase 为任意一笔提交补上 Change-Id
android·git·android studio
OsDepK19 小时前
AudioSplit音频多轨免费分离工具即将发布
ide·git·python·音视频·集成学习
jiayong2320 小时前
Git 常见错误与详细解决方案
大数据·git·elasticsearch
jiayong2321 小时前
Git 分支命名、区别、联系与顺序关系说明
大数据·git·elasticsearch
无风听海21 小时前
Git 对象存储模型深度解析
git
展翅飞翔的小王21 小时前
速查】Git 常用提交流程 + 强制用远端覆盖本地
git
C137的本贾尼1 天前
分支管理(一):创建、切换与合并,体验“平行宇宙”
git