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

移动文件时Git显示内容全删再加?Git Blame异常排查与解决

解决方案

SourceTree 排查修复步骤

  • 统一Git版本:打开SourceTree「工具」→「选项」→「Git」,确认使用的Git版本和正常机器一致,优先选择系统级Git而非内置版本。
  • 关闭大小写忽略:在Git设置页,取消勾选「忽略大小写」相关选项——Windows文件系统大小写不敏感,该选项可能导致Git误判文件移动为内容变更。
  • 清理缓存重启:进入「工具」→「选项」→「高级」,点击「清除缓存」,重启SourceTree后重试文件移动操作。
  • 对齐换行符配置:打开仓库的「设置」→「高级」,确认换行符处理规则和正常机器一致,避免因换行符批量变更触发全文件内容标记。

Git命令行批量移动操作

如果SourceTree问题无法解决,直接用Git命令行操作可确保移动逻辑可靠:

  1. 执行移动命令:
    # 移动整个文件夹到目标路径
    git mv ./old-dir ./target/sub-dir/
    # 批量移动指定后缀文件到子文件夹
    git mv ./src/*.js ./src/utils/
    
  2. 验证变更类型:
    # 确认Git识别为重命名(renamed)而非删除+新增
    git status
    
  3. 提交变更:
    git commit -m "refactor: 批量迁移文件至子目录"
    
    提交后可通过git blame ./target/sub-dir/filename检查 blame 信息是否正常保留。

注意:操作前确保工作区无未提交变更,避免Git混淆移动操作与其他内容修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 10:30:49