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

Git同仓库移动文件到新文件夹如何保留原有提交历史

Git移动文件后保留提交历史的正确方法

用git mv移动文件的操作本身没有错误,移动后查不到旧提交历史是Git默认日志规则导致的:Git底层不存储文件重命名、移动的元数据,默认查询文件日志时只会追踪当前路径下的提交,不会自动追溯路径变更前的历史。

操作说明

  • 移动文件时保证操作纯净
    移动文件单独做一次提交,不要在同一个commit里同时修改文件内容、操作其他无关文件,保证移动后的文件和原文件内容完全一致,让Git的相似度检测能准确识别这是同一个文件。之前执行的git mv file1 folder/file1后单独提交的操作本身是符合要求的。
  • 查全量历史时加--follow参数
    执行以下命令就能看到包含移动前记录的完整提交历史:
    git log --follow folder/file1
    
    加这个参数后,Git会追踪指定文件的所有路径变更,顺着重命名、移动的关联往前找所有相关提交,就能看到file1移动前的两条旧提交记录。

补充注意点

  • 不要在移动文件的提交里混着改内容,一旦文件内容改动占比太高,Git会判定这是新创建的文件,就关联不上之前的提交历史了。
  • 可以执行git config --global diff.renames true全局开启重命名识别,提升Git判断重命名的准确率,但查询单文件跨路径历史时还是需要加--follow参数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:09:21