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

Android Studio重命名文件后Git丢失历史:文件被标记为删除与新增

Git无法识别Android Studio重命名文件的问题解决

问题现象

  • 在Android Studio Jellyfish | 2023.3.1 RC 2 Beta版中,通过「Refactor -> Rename...」菜单重命名文件时,Git会将旧文件标记为删除、新文件标记为新增,导致原文件的Git历史丢失(例如将Utils重命名为LauncherIntentHelper后出现该问题)。
  • 此前使用稳定版Android Studio时,Git可正确识别重命名操作;当前仅使用本地Git仓库(仅提交未推送)。
  • 额外测试结果:
    • 用git mv命令行执行重命名并同时修改文件内容,提交后仍显示旧文件删除、新文件新增;
    • 将重命名和修改合并提交也无效;
    • 仅分开两次提交(先提交纯重命名,再提交文件修改)才能让Git正常识别重命名并保留历史。

临时解决办法

拆分提交步骤(推荐)

  1. 仅执行文件重命名操作,不修改任何文件内容,完成后提交到本地仓库:
    git add .
    git commit -m "Rename [旧文件名] to [新文件名]"
    
  2. 对新文件进行内容修改,完成后单独提交修改:
    git add .
    git commit -m "Update [新文件名] content"
    

切换至稳定版Android Studio

若Beta版的该问题严重影响开发流程,可暂时回退到之前能正常识别重命名的稳定版AS,等待后续Beta版本修复该问题后再升级。

背后逻辑

Git识别重命名依赖于文件内容的相似度对比。当重命名和内容修改同时发生时,若内容变化幅度过大,Git无法将新旧文件关联,会判定为独立的删除/新增操作。Android Studio Beta版的重命名工具可能存在逻辑变化,导致重命名时隐性触发了文件内容修改,或是提交逻辑导致Git无法识别;而拆分提交后,纯重命名的提交中文件内容完全一致,Git能正确判定为重命名操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 08:02:46