移动文件时Git显示内容全删再加?Git Blame异常排查与解决
解决方案
SourceTree 排查修复步骤
- 统一Git版本:打开SourceTree「工具」→「选项」→「Git」,确认使用的Git版本和正常机器一致,优先选择系统级Git而非内置版本。
- 关闭大小写忽略:在Git设置页,取消勾选「忽略大小写」相关选项——Windows文件系统大小写不敏感,该选项可能导致Git误判文件移动为内容变更。
- 清理缓存重启:进入「工具」→「选项」→「高级」,点击「清除缓存」,重启SourceTree后重试文件移动操作。
- 对齐换行符配置:打开仓库的「设置」→「高级」,确认换行符处理规则和正常机器一致,避免因换行符批量变更触发全文件内容标记。
Git命令行批量移动操作
如果SourceTree问题无法解决,直接用Git命令行操作可确保移动逻辑可靠:
- 执行移动命令:
# 移动整个文件夹到目标路径 git mv ./old-dir ./target/sub-dir/ # 批量移动指定后缀文件到子文件夹 git mv ./src/*.js ./src/utils/ - 验证变更类型:
# 确认Git识别为重命名(renamed)而非删除+新增 git status - 提交变更:
提交后可通过git commit -m "refactor: 批量迁移文件至子目录"git blame ./target/sub-dir/filename检查 blame 信息是否正常保留。
注意:操作前确保工作区无未提交变更,避免Git混淆移动操作与其他内容修改。
内容的提问来源于stack exchange,提问作者Tudvari
相关产品推荐
相关产品推荐

