当前位置: 首页 > news >正文

Git 撤回已推送到远程的最近push

下面以撤销最近的两次push为例

方法一:使用 git revert 安全撤销(推荐,不改变历史)

git revert 会创建新的“撤销提交”,抵消指定提交的修改,不会删除原有历史,适合多人协作的公共分支。

步骤:

  1. 查看提交历史,获取要撤销的两次提交的哈希值 执行 git log --oneline 查看最近提交,例如:

    a1b2c3d (HEAD -> main, origin/main) 最近的第1次提交(要撤销)
    d4e5f6g 最近的第2次提交(要撤销)
    7h8i9j0 更早的提交(保留到此)

    记下前两个提交的哈希值:a1b2c3dd4e5f6g

  2. 依次撤销这两次提交(从新到旧)

    • 先撤销最近的第1次提交:

      git revert a1b2c3d

      会自动打开编辑器,输入撤销说明(操作:按 i 进入编辑模式,编写内容后按 Esc 退出,再输入 :wq 保存退出)。

    • 再撤销第2次提交:

      git revert d4e5f6g

      同样编辑并保存撤销说明。

  3. 推送撤销结果到远程

    git push origin main  # 替换为你的分支名

    此时远程仓库会新增两个“撤销提交”,原有两次提交的修改被抵消,历史记录完整保留。

方法二:使用 git reset 重置历史(谨慎使用,改写历史)

git reset 会直接删除指定提交,改写本地和远程历史,仅适合私人分支或确认无人基于该历史开发的情况

步骤:

  1. 重置本地分支到两次提交之前的状态 假设两次提交之前的基准提交哈希是 7h8i9j0(见步骤1的示例):

    git reset --hard 7h8i9j0  # --hard 会丢弃工作区修改,确保已备份
  2. 强制推送重置后的分支到远程 由于改写了历史,需要强制推送(使用 --force-with-lease--force 更安全,避免覆盖他人提交):

    git push origin main --force-with-lease  # 替换为你的分支名

注意事项:

  1. 公共分支优先用 revertreset 会删除远程历史,可能导致团队成员代码冲突,需提前沟通。

  2. 备份重要修改:执行操作前,建议用 git branch backup-branch 创建分支备份。

  3. 如果他人已拉取代码

    • 若用 revert:他人正常 pull 即可同步。

    • 若用 reset:他人需执行 git fetch origin + git reset --hard origin/main 强制同步(会丢失本地基于旧历史的修改)。

根据团队规范选择合适方式,优先保证协作安全。

http://www.dtcms.com/a/327295.html

相关文章:

  • Linux 服务器,安装mqtt服务
  • AuthController类讲解
  • 思科、华为、华三如何切换三层端口?
  • 前端面试题汇总--Vue2篇
  • 网络安全:如何保障社交媒体账户的安全?
  • 导入文件到iPhone实现
  • Python打卡Day40 训练和测试的规范写法
  • iOS 编译 cpp 代码生成 .a 库备忘
  • 【测试】Bug+设计测试用例
  • 华为发布AI推理新技术,降低对HBM内存依赖
  • C语言—数组和指针练习题合集(二)
  • 终端安全检测和防御技术总结
  • 2025年Java后端秋招面试宝典:高频题库+场景解析
  • wordpress从wp_nav_menu中获取菜单项
  • 聆思duomotai_ap sdk适配dooiRobot
  • 【PyTorch学习笔记 - 03】 Transforms
  • 算法打卡力扣第88题:合并两个有序数组(easy)
  • Java的异常机制
  • 【牛客刷题】REAL806 放它一马:怪物经验值最大化策略详解
  • 云原生应用的DevOps3(CI/CD十大安全风险、渗透场景)
  • UE5多人MOBA+GAS 42、提高头像画质
  • C++——高性能组件
  • AI大模型基础:BERT、GPT、Vision Transformer(ViT)的原理、实现与应用
  • 【2】Transformers快速入门:统计语言模型是啥?
  • Agent智能体基础
  • 「日拱一码」057 逆向强化学习(IRL)
  • 从0开始的中后台管理系统-5(菜单的路径绑定以及角色页面的实现)
  • 分布式光伏气象站:为光伏电站的 “气象感知眼”
  • 自建知识库,向量数据库 体系建设(一)之BERT 与.NET 4.5.2 的兼容困境:技术代差下的支持壁垒
  • AWS EKS 常用命令大全:从基础管理到高级运维