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

使用Git重命名并移动文件至其他目录,如何保留提交历史?

Git移动文件并保留提交历史的正确操作
  • 首先必须用git mv而非系统原生mv,Git会自动记录文件的移动/重命名关联,不会丢失历史(用系统mv再手动删除旧文件、添加新文件的话,Git可能无法识别这是重命名操作)。
  • 具体操作步骤:
    1. 先确保目标目录存在,不存在则提前创建:
      mkdir -p src/my-newfolder
      
    2. 在项目根目录下执行Git移动命令(用相对路径更稳妥):
      git mv dist/somefile.js src/my-newfolder/index.js
      
    3. 提交这个移动/重命名变更:
      git commit -m "Move and rename somefile.js to src/my-newfolder/index.js"
      
    4. 查看该文件的完整提交历史(包含原路径下的所有提交):
      git log --follow -- src/my-newfolder/index.js
      
  • 关键说明:
    • --follow参数的作用是让Git追踪文件的重命名记录,回溯显示原路径下的所有提交;
    • 命令里的--是为了避免文件名和分支名、选项名冲突,属于稳妥写法;
    • 必须提交移动变更后,--follow才能正常工作,因为Git需要提交记录来关联新旧文件。

内容的提问来源于stack exchange,提问作者david-l

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 23:24:52