You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在GitHub Desktop中回滚已推送提交内的指定文件(无需回滚整个提交)

无需回滚整个提交,单独恢复误改文件的方法

当然有更高效的解决方案!不用手动从其他分支复制粘贴,直接通过Git命令就能精准恢复误修改的C文件,同时保留提交里A、B文件的正确修改,以下是具体步骤:

步骤1:定位目标文件并恢复到提交前状态

首先确保你当前处于自己的feature分支上(可以用git branch命令确认),然后根据你的提交位置选择对应命令:

  • 如果这个包含误修改的X提交是本地最新提交
    使用git restore命令将C文件恢复到X提交前的原始状态:
    git restore --source=HEAD~1 path/to/C-file
    
    这里的HEAD~1代表当前提交的上一个版本(也就是X提交之前的状态)。
  • 如果X提交不是最新提交(中间已经有其他新提交):
    先通过git log找到X提交的哈希值(比如abc123),然后用该提交的父版本来恢复C文件:
    git restore --source=abc123~1 path/to/C-file
    

步骤2:提交修正并推送到远程

恢复完成后,C文件就回到了误修改前的状态,接下来创建一个新的修正提交:

git add path/to/C-file
git commit -m "Revert accidental changes to C-file"

最后把这个修正提交推送到远程的feature分支:

git push origin feature

补充说明

这个方法的优势在于:

  • 完全保留了A、B文件的正确修改,不会影响提交里的有效内容
  • 提交历史清晰,后续查看时能明确看到你修正了误修改的文件
  • 比手动复制粘贴更符合Git的工作流,避免引入不必要的手动操作误差

内容的提问来源于stack exchange,提问作者roadRunner

火山引擎 最新活动