实际开发过程中突然出现untracked文件的一次记录

148 阅读2分钟

实际开发过程中突然出现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 文件
  1. 打开 IDEA 的 Version Control 工具窗口

    • 点击右下角的 Git 面板。
    • 或者使用快捷键 Alt + 9(Windows)或 Cmd + 9(Mac)。
  2. 切换到 Unversioned Files 视图

    • Local Changes 标签页中,查看所有 Unversioned Files
    • 你会看到报错中提到的 PayableBillAddParam.java 等文件都在这里。
  3. 右键点击并选择操作

    • 若不需要这些文件,直接右键选择 Delete
    • 若需要保存:右键 → Move to... 将文件移到其他目录(如桌面),以备后用。
  4. 再次执行 Git Merge 操作

    • 清理干净后,在 IDEA 中重新点击 Git → Merge Changes,就不会再报错了。

方法二:用 Git Clean 清理(适合不需要保留文件)
  1. 打开 IDEA 中的终端(Terminal):

    • 右下角点击 Terminal
    • 或者使用快捷键 Alt + F12
  2. 执行命令:

    bash
    ​
    ​
    复制编辑
    git clean -fd
    
    • -f 表示强制。

    • -d 表示同时删除目录。

    ⚠️ 注意:这个操作是不可逆的,所有未被 Git 跟踪的文件都会被删除。


方法三:临时备份这些文件
  1. Unversioned Files 中全选并右键 Refactor → Move,把这些文件移动到一个临时文件夹中(如 /tmp_backup)。
  2. 然后执行 merge。
  3. Merge 成功后,再将需要的文件手动移回来或重新添加。

上述方法是查询得到的,比较适合本地自己误创建的文件,因为如果是自己的原因起码知道文件的底细,删除或者备份都很有把握。

但是这是在协同开发,我感觉随便删了会出问题。

所以我选择方法四

方法四:使用Git提交这些文件后,再将远程分支合并

在idea中的Git提交里,找到未跟踪的文件,都是标识为红色的,然后全选,提交。

然后就可以将远程分支合并进本地分支,从而解决这个报错信息。