git .BACKUP .BASE .LOCAL .REMOTE文件

24
我们正在公司为一个项目安装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文件中轻松处理。但我不想像上面一样在整个项目中累积文件。

2
这可能是TortoiseMerge特有的问题。TortoiseMerge并不是标准Git发布版的一部分。 - Greg Hewgill
那么 Git 一定已经识别出我安装了 Tortoise,并在我运行 git mergetool 时将 tortoisemerge 包括为一个选项了? - magenta placenta
1
请注意,git clean -i 将会交互式地引导您删除这些文件。但是请注意,它也会提供删除任何其他尚未(“尚未”)受版本控制的文件的选项。 - nealmcb
@GregHewgill 也许这已经改变了(?),因为当我执行普通的 git merge 时,我看到这些文件被创建。 - 1252748
3个回答

27
正如其他答案所提到的,这些文件似乎是Git合并工具在解决冲突时创建的。默认的Git设置会在冲突解决后留下这些额外的文件,但是当前版本的Git允许您设置配置变量,以便在完成合并后始终删除这些临时文件。
您可以在Git Bash中使用以下命令来执行此操作...
git config --global mergetool.keepBackup false
< p > --global 参数是可选的,它控制这个设置是针对当前用户(全局)还是当前仓库的。

更多信息 在这里


编辑:即使启用了此设置,如果您尝试通过硬重置中止修复MERGE期间未解决状态的存储库,这些文件也可能会累积和持久化。

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


注意:我有一个类似的问题,最终来到了这里。虽然当前的答案最终让我找到了正确的解决方案,但我觉得它并没有回答我的问题,需要更新一下答案。

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

请注意,这仅适用于Tortoise而不是Git。 - Jeremy

-3
要删除未跟踪的文件和目录,请键入:
git clean -df

2
强调一下,这将删除所有未跟踪的文件和目录,而不仅仅是在合并过程中创建的临时文件。 - 1252748

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接