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

如何提取两次Git提交间的新增完整代码文件至指定文件夹?

提取两次Git提交间新增文件的命令实现

步骤1:获取两次提交的哈希值

先确定你要对比的两个提交的哈希值(可以在Fork里直接复制,或者用git log命令查看),记为旧提交哈希(两年前的那次)和新提交哈希(最近的那次)。

步骤2:筛选出新增文件列表

用以下命令列出两次提交之间新增的所有文件:

git diff --name-only --diff-filter=A <旧提交哈希> <新提交哈希>
  • --diff-filter=A:只筛选**新增(Added)**的文件,排除修改、删除的文件
  • --name-only:仅输出文件路径,不显示文件内容差异

步骤3:将新增文件提取到指定文件夹

先确保目标文件夹存在(比如~/target-files):

mkdir -p ~/target-files

然后用以下命令把所有新增文件导出到目标文件夹(兼容带空格的文件名):

git diff --name-only --diff-filter=A <旧提交哈希> <新提交哈希> | while read -r file; do
  git checkout <新提交哈希> -- "$file" --prefix=~/target-files/
done
  • while read -r file:处理带空格的文件名,避免解析出错
  • --prefix=~/target-files/:指定文件导出的目标路径,Git会自动创建对应的目录结构

如果你的系统支持xargs且文件名无空格,也可以用更简洁的命令:

git diff --name-only --diff-filter=A <旧提交哈希> <新提交哈希> | xargs -I {} git checkout <新提交哈希> -- {} --prefix=~/target-files/

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 21:50:11