实际开发过程中突然出现untracked文件的一次记录
这算是第一次面对这种这种情况,忘记截图了,大概就是我昨天上传完代码后把分支更新了后就下班回去了,今天早上打开项目突然启动不了,然后多了一些文件,然后想着肯定是开发分支又更新了,然后一合并,欸,突然报错:
The following untracked working tree files would be overwritten by merge:
...
Please move or remove them before you merge.
Aborting
瞬间懵逼,而且这些未追踪的文件并不是我创建的,是我同事创建的,就很神奇。
所以就逐个看了一下这些未追踪的文件,上网搜了搜,了解到这个报错的原理是,git误以为我本地创建了这些文件,但是没有提交到git上,但是远程也同样存在这些文件,所以没法合并。
目前已知的解决方案有:
方法一:在 IDEA 中删除这些 untracked 文件
-
打开 IDEA 的 Version Control 工具窗口:
- 点击右下角的
Git面板。 - 或者使用快捷键
Alt + 9(Windows)或Cmd + 9(Mac)。
- 点击右下角的
-
切换到
Unversioned Files视图:- 在
Local Changes标签页中,查看所有Unversioned Files。 - 你会看到报错中提到的
PayableBillAddParam.java等文件都在这里。
- 在
-
右键点击并选择操作:
- 若不需要这些文件,直接右键选择
Delete。 - 若需要保存:右键 →
Move to...将文件移到其他目录(如桌面),以备后用。
- 若不需要这些文件,直接右键选择
-
再次执行 Git Merge 操作:
- 清理干净后,在 IDEA 中重新点击
Git → Merge Changes,就不会再报错了。
- 清理干净后,在 IDEA 中重新点击
方法二:用 Git Clean 清理(适合不需要保留文件)
-
打开 IDEA 中的终端(Terminal):
- 右下角点击
Terminal。 - 或者使用快捷键
Alt + F12。
- 右下角点击
-
执行命令:
bash 复制编辑 git clean -fd-
-f表示强制。 -
-d表示同时删除目录。
⚠️ 注意:这个操作是不可逆的,所有未被 Git 跟踪的文件都会被删除。
-
方法三:临时备份这些文件
- 在
Unversioned Files中全选并右键Refactor → Move,把这些文件移动到一个临时文件夹中(如/tmp_backup)。 - 然后执行 merge。
- Merge 成功后,再将需要的文件手动移回来或重新添加。
上述方法是查询得到的,比较适合本地自己误创建的文件,因为如果是自己的原因起码知道文件的底细,删除或者备份都很有把握。
但是这是在协同开发,我感觉随便删了会出问题。
所以我选择方法四
方法四:使用Git提交这些文件后,再将远程分支合并
在idea中的Git提交里,找到未跟踪的文件,都是标识为红色的,然后全选,提交。
然后就可以将远程分支合并进本地分支,从而解决这个报错信息。