22

我们在这里为一个项目安装了 git,我正在和另一个同事一起玩它。

我一直在解决一些精心设计的合并冲突,但最终得到了一堆我不想要的额外文件。它们是 .BACKUP .BASE、.LOCAL 和 .REMOTE 文件。根据这些名称,它们似乎来自解决我的合并。我得到的一些确切文件名是:

  • index.shtml.BACKUP.16908.shtml
  • index.shtml.BASE.16908.shtml
  • index.shtml.LOCAL.16908.shtml
  • index.shtml.REMOTE.16908.shtml
  • 我还有另一组上述文件,但以 .21384 结尾,假设来自另一次合并尝试

是否可以不保存这些文件?可以想象,现在有 9 个版本的 index.shtml 有点烦人。我正在使用 git 的内置合并工具 tortoisemerge。

我通过运行 git log 遇到了类似的问题,它显然创建了一个“df”文件。只需将其包含在 .gitignore 文件中即可轻松处理。不过,我不想只是在整个项目中积累像上面这样的文件。

4

3 回答 3

24

正如另一个答案所提到的,这些文件似乎是由 Git 的合并工具在解决冲突时创建的。默认的 Git 设置会留下这些额外的文件,即使在冲突解决后也是如此,但当前版本的 Git 允许您设置一个配置变量,以使 Git 在完成合并后始终删除这些临时文件。

您可以在 Git Bash 中使用以下命令执行此操作...

git config --global mergetool.keepBackup false

当然,该--global参数是可选的,并控制此设置是此用户本地(全局)还是当前存储库。

更多信息在这里。向下滚动到底部的临时文件部分。


编辑:即使启用了此设置,如果您的 repo 在您尝试通过硬重置中止来修复的 MERGE 期间最终处于未解决状态,这些文件也可以累积和保留。

例如,在我使用 Qt Creator 4.7.x 的某些配置时,这种情况发生了好几次,直到我意识到发生了什么并mergetool在我的机器上正确配置了 Git。


注意:我有一个类似的问题并最终来到这里。尽管当前的答案最终使我找到了正确的解决方案,但我认为它并没有回答问题,并且更新的答案是有序的。

于 2016-05-26T22:57:11.163 回答
3

在 Tortoise 中,转到设置并取消选中“备份原始文件”(一次操作)下次打开它时可以进行常规合并,Tortoise 将创建 .base、.backup、.local、.remote,但是当你保存merge Tortoise 会自动删除这个文件。

于 2013-06-06T18:30:27.857 回答
-2

要删除未跟踪的文件和目录,请键入:

git clean -df
于 2020-03-31T16:45:52.300 回答