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

如何将Git提交中对文件X的变更迁移至复制后的文件Y?

迁移Git提交中对文件X的变更到文件Y
  • 定位目标提交
    先找出修改文件X的那个提交的哈希值,执行命令:

    git log --oneline -- fileX
    

    从输出里拿到提交哈希(比如abc123)。

  • 生成提交差异补丁
    将该提交的差异导出到临时文件:

    git show abc123 > temp.patch
    
  • 替换补丁中的文件名
    把补丁里所有fileX替换成fileY,用sed命令更高效:

    # Linux环境
    sed -i 's/fileX/fileY/g' temp.patch
    # MacOS环境
    sed -i '' 's/fileX/fileY/g' temp.patch
    

    也可以直接用文本编辑器打开temp.patch手动替换。

  • 应用修改后的补丁
    把补丁应用到当前分支:

    git apply temp.patch
    

    没有冲突的话,文件Y就会包含原提交中对X的所有修改了。

  • 可选:保留提交历史的迁移方式
    如果想把原提交的记录也关联到文件Y上,可以用cherry-pick并指定重命名识别阈值:

    git cherry-pick -X rename-threshold=100 abc123
    

    Git会自动识别X和Y是重命名的文件,把变更应用到Y上。如果出现冲突,解决冲突后执行git cherry-pick --continue即可完成操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 04:12:07