惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
云风的 BLOG
云风的 BLOG
Microsoft Security Blog
Microsoft Security Blog
WordPress大学
WordPress大学
GbyAI
GbyAI
C
Check Point Blog
M
MIT News - Artificial intelligence
T
The Blog of Author Tim Ferriss
Jina AI
Jina AI
博客园 - 【当耐特】
U
Unit 42
月光博客
月光博客
腾讯CDC
Y
Y Combinator Blog
小众软件
小众软件
博客园_首页
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
The GitHub Blog
The GitHub Blog
博客园 - 聂微东
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
博客园 - Franky
T
Tailwind CSS Blog

宏尘极客

阿里云ESA免费版Halo缓存配置 微信公众号同步插件配置指南 halo-theme-dream2.0-plus 主题-默认版权协议配置与转载文章配置 halo-theme-dream2.0-plus 主题-新版朋友圈配置说明 halo-theme-dream2.0-plus 主题 1.20.2 版本-留言板配置说明 微信红包封面-马到功成 Windows11彻底关闭自动更新指南 WSL2 Docker 资源配置指南 绿联Pro 安装Dos游戏中文版webui,一个可以浏览器内玩dos游戏的容器 绿联Pro 安装 Stirling-PDF-V2 - 强大的本地托管基于 Web 的 PDF 操作工具 绿联Pro 部署在线游戏机 绿联Pro 安装OpenList一个支持多种存储的文件列表程序 绿联Pro 部署Memos - 轻量级自托管备忘录中心 绿联Pro 安装 Stirling-PDF - 强大的本地托管基于 Web 的 PDF 操作工具 绿联Pro 部署Upage - 基于大模型的可视化网页构建平台,Lovable 开源替代 不蒜子数据同步工具使用指南 绿联Pro 部署 PostgreSQL 数据库 绿联Pro 自建不蒜子统计服务,替代Dream2.0 Plus主题页脚统计数据 1panel使用编排模板部署不蒜子服务,自建不蒜子统计服务,替代Dream2.0 Plus主题页脚统计数据 绿联Pro 安装Photopea,轻量在线PS工具 绿联Pro 安装禅道(Zentao),一款功能强大、全面的敏捷项目管理软件 绿联Pro 安装MeterSphere,新一代的测试管理和接口测试工具 Docker Compose 标签介绍与示例指南 绿联Pro 安装Meilisearch 搜索引擎,为halo博客提供增强搜索引擎 解析 <meta> 标签的全局 Referrer 策略设置 电线粗细选择与家用大功率电器布线指南 Nginx 防盗链配置介绍 Nginx 反向代理简介 绿联Pro 部署meting-api服务并使用lukcy反向代理,自建音乐API服务 1panel使用编排模板部署meting-api服务,自建音乐API服务
Git revert 撤销已推送到服务器的提交详解
宏尘 · 2025-05-24 · via 宏尘极客

1. 为什么需要撤销已推送的提交?

在团队协作开发中,有时我们会不小心将错误的代码推送到远程仓库。这时候不能简单地使用 git reset,因为它会重写提交历史,影响其他协作者。git revert 是更安全的解决方案。

2. git revert 简介

git revert 命令会创建一个新的提交,这个提交会撤销指定提交所做的更改。这种方式不会修改项目历史,而是添加一个新的提交来"回滚"之前的更改。

3. 使用 git revert 的基本步骤

3.1 查看提交历史

首先,我们需要找到要撤销的提交的哈希值:

git log --oneline

输出示例:

a1b2c3d (HEAD -> main) 添加新功能
e4f5g6h 修复bug
i7j8k9l 初始提交

3.2 执行 revert 操作

假设我们要撤销 a1b2c3d 这个提交:

git revert a1b2c3d

3.3 解决可能的冲突

如果撤销的提交与当前代码有冲突,Git 会提示你解决冲突。解决后:

git add .
git revert --continue

3.4 推送更改到远程仓库

git push

4. git revert 的高级用法

4.1 撤销多个连续提交

git revert older_commit^..newer_commit

4.2 撤销但不自动提交(用于修改撤销内容)

git revert -n a1b2c3d

4.3 撤销合并提交

git revert -m 1 merge_commit_hash

5. 实际示例

假设我们有以下提交历史:

d467890 (HEAD -> main) 添加支付功能
c356781 更新用户界面
b245670 修复登录问题
a123456 初始项目结构

要撤销"添加支付功能"这个提交:

git revert d467890

Git 会打开编辑器让你编辑 revert 提交的信息,保存退出后,历史中将新增一个撤销提交。

6. 注意事项

  1. revert 会创建一个新的提交,不会删除原有的提交

  2. 对于已经 revert 的提交,再次 revert 这个 revert 提交可以恢复原更改

  3. 对于合并提交,需要使用 -m 选项指定要保留的主线

7. 与其他撤销命令的比较

  • git reset:重写历史,适合本地未推送的更改

  • git checkout:丢弃工作目录的更改

  • git revert:安全撤销已推送的更改

通过合理使用 git revert,你可以安全地撤销已推送到远程仓库的更改,而不会影响团队其他成员的工作。