You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git如何对比两个commit并将变更文件的最新版本移动到新目录?

Git 提取指定提交范围内变更文件最新版本操作指南

前置说明

你需要的所有变更文件的最新版本默认就是该范围内最近一次提交(即D)中的版本,无需逐次提交查找修改记录,Git会自动保留最后一次修改的结果。

操作步骤

  • 如果你要操作的是最近4次提交,直接按以下命令执行即可:
    1. 生成包含4次提交所有变更的补丁文件(可选,仅需要补丁时执行)
      git diff HEAD~4 HEAD > 4_commits_changes.patch
      
      后续可以通过 git apply 4_commits_changes.patch 直接应用所有变更。
    2. 创建用于存放最新变更文件的新目录
      mkdir -p ./latest_changed_files
      
    3. 批量导出所有变更文件的最新版本到新目录,保留原有目录结构
      git archive HEAD $(git diff --name-only HEAD~4 HEAD) | tar -x -C ./latest_changed_files
      
  • 如果你要操作的是指定的A→B→C→D四个提交,不是最近4次,把上述命令中所有的 HEAD~4 替换为 <A提交的哈希值>~1,HEAD 替换为 <D提交的哈希值> 即可。

注意事项

如果有文件在这4次提交中被删除,上述导出操作会自动过滤已删除的文件,仅保留最新提交中存在的文件。如果需要记录文件删除操作,直接使用生成的diff补丁文件即可。

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 17:06:05