Git Revert特定文件/路径的实现方法

 更新时间:2025年12月01日 08:52:31   作者:兔老大RabbitMQ  
文章介绍了四种方法来恢复Git仓库中单个文件到指定提交,包括使用`git checkout`、`git restore`、手动Revert和使用IDEA图形化操作

git revert 命令本身不支持直接指定文件或路径,但有几种方法可以实现你的需求。

方法1:使用git checkout(推荐 - 最简单)

恢复单个文件到指定提交

# 将某个文件恢复到 master 分支的状态
git checkout master -- src/main/java/PriceFilter.java

# 将某个文件恢复到指定提交的状态
git checkout 8b68b626 -- src/main/java/PriceFilter.java

# 恢复后需要提交
git add src/main/java/PriceFilter.java
git commit -m "revert: 恢复 PriceFilter.java 到 master 状态"

# 恢复整个目录到 master 状态
git checkout master -- src/main/java/

# 恢复多个文件
git checkout master -- file1.java file2.java

# 恢复当前目录下所有 .java 文件
git checkout master -- *.java

方法2:使用git restore(Git 2.23+推荐)

# 将文件恢复到 master 分支状态
git restore --source=master src/main/java/PriceFilter.java

# 将文件恢复到指定提交状态
git restore --source=8b68b626 src/main/java/PriceFilter.java

# 恢复整个目录
git restore --source=master src/main/java/

# 提交更改
git add .
git commit -m "revert: 恢复指定文件到 master 状态"


# 恢复到工作区(默认)
git restore --source=master --worktree src/main/java/PriceFilter.java

# 恢复到暂存区
git restore --source=master --staged src/main/java/PriceFilter.java

# 同时恢复到工作区和暂存区
git restore --source=master --worktree --staged src/main/java/PriceFilter.java

方法3:手动 Revert + 选择性恢复

# 1. 先正常 revert 整个提交
git revert cc53969d --no-commit

# 2. 查看被 revert 的文件
git status

# 3. 恢复不需要 revert 的文件
git checkout HEAD -- 不需要revert的文件.java

# 4. 只保留需要 revert 的文件更改
git add 需要revert的文件.java

# 5. 提交
git commit -m "revert: 仅恢复部分文件到指定状态"

方法4:使用 IDEA 图形化操作

单个文件恢复

  1. 在项目树中右键点击目标文件
  2. Git → Show History
  3. 在历史记录中找到目标提交(如 master 的最新提交)
  4. 右键点击该提交 → Get Revision
  5. 确认恢复该文件到选定版本

目录恢复

  1. 右键点击目标目录
  2. Git → Repository → Reset
  3. 选择目标提交
  4. 选择 Mixed 模式
  5. 在弹出的文件列表中只选择需要的文件
  6. 点击 Reset

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 真伪静态区别方法分析

    真伪静态区别方法分析

    有些用户觉得,伪静态和真静态实际被收录量会相差非常大,其实不然,从你个人角度,你去判断一下一个帖子到底是真静态还是伪静态?
    2010-01-01
  • 分享五个最佳编程字体

    分享五个最佳编程字体

    这篇文章主要介绍了分享五个最佳编程字体,需要的朋友可以参考下
    2016-10-10
  • VSCode开发必备插件推荐(墙裂推荐!)

    VSCode开发必备插件推荐(墙裂推荐!)

    vscode是微软开发的的一款代码编辑器,就如官网上说的一样,vscode重新定义(redefined)了代码编辑器,下面这篇文章主要给大家介绍了关于VSCode必备插件推荐的相关资料,需要的朋友可以参考下
    2022-11-11
  • 手把手教你将Vim改装成一个IDE编程环境(图文)  吴垠

    手把手教你将Vim改装成一个IDE编程环境(图文) 吴垠

    这篇文章主要介绍了手把手教你将Vim改装成一个IDE编程环境(图文) 吴垠 ,需要的朋友可以参考下
    2016-01-01
  • VS Nuget的使用实践

    VS Nuget的使用实践

    Nuget是一个VS的扩展插件。我们在使用VS开发时,Nuget能把在项目中添加、移除和更新引用的工作变得更加快捷方便,感兴趣的可以了解一下
    2021-09-09
  • 网站被等恶意镜像的解决、反制措施详细教程

    网站被等恶意镜像的解决、反制措施详细教程

    这篇文章主要介绍了网站被等恶意镜像的解决、反制措施详细教程,需要的朋友可以参考下
    2016-10-10
  • 使用swipe方法模拟屏幕滑动与手势密码绘制

    使用swipe方法模拟屏幕滑动与手势密码绘制

    这篇文章主要介绍了使用swipe方法模拟屏幕滑动与手势密码绘制 ,本文通过实力代码,图文效果的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • 解决idea git切换多个分支后maven不生效的问题

    解决idea git切换多个分支后maven不生效的问题

    这篇文章主要介绍了解决idea git切换多个分支后maven不生效的问题,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • IntelliJ IDEA 2020如何设置背景图片的方法步骤

    IntelliJ IDEA 2020如何设置背景图片的方法步骤

    这篇文章主要介绍了IntelliJ IDEA 2020如何设置背景图片的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-04-04
  • VSCode如何巧用正则表达式快速处理字符段

    VSCode如何巧用正则表达式快速处理字符段

    正则真的好用,平时工作用正则最多的地方就是在编辑器里做查找替换,下面这篇文章主要给大家介绍了关于VSCode如何巧用正则表达式快速处理字符段的相关资料,需要的朋友可以参考下
    2022-11-11

最新评论