我是如何在 git mergetool 期间生成所有这些额外文件的?我如何摆脱它们?

How did I generate all these extra files during git mergetool and how do I get rid of them?

我刚刚使用 p4merge 设置我的新 git 存储库作为我的外部 git mergetool。我在 Mac 上,我只是按照 git 外部 mergetools 教程:

https://git-scm.com/book/en/v2/Customizing-Git-Git-Configuration

我处理了我的合并冲突,我注意到它似乎为我打开的每个新 class 冲突保持一个单独的 p4merge 实例打开。在我的旧回购协议中,我只是点击保存,关闭 window 并且 git 会自动打开下一个冲突(我当时也在 Windows 上)。现在这样做似乎只会导致保存持续一半时间,而且我不得不继续在终端中输入 'git mergetool' 以返回到 p4merge。在我完成所有工作后,我的分支是干净的,但我仍然打开了 p4merge 的所有这些单独进程。全部关闭它们会在命令行中引发一堆错误,然后我得到了一大堆 base/local/remote 工件。现在我的分支状态看起来像这样:

modified:   src/main/java/com/utils/ClientResponseUtils.java.orig
    deleted:    src/main/java/com/utils/ClientResponseUtils_BACKUP_70929.java
    deleted:    src/main/java/com/utils/ClientResponseUtils_BASE_70929.java
    deleted:    src/main/java/com/utils/ClientResponseUtils_LOCAL_70929.java
    deleted:    src/main/java/com/utils/ClientResponseUtils_REMOTE_70929.java
    modified:   src/main/java/com/utils/ListUtils.java.orig
    deleted:    src/main/java/com/utils/ListUtils_BACKUP_85524.java
    deleted:    src/main/java/com/utils/ListUtils_BASE_85524.java
    deleted:    src/main/java/com/utils/ListUtils_LOCAL_85524.java
    deleted:    src/main/java/com/utils/ListUtils_REMOTE_85524.java

除了很多,更长的时间,它基本上包含了我接触过的所有东西的集合,并且在合并中有很多 classes。

我如何才能快速完成这一过程而不必单独管理每一个,我如何防止这种情况在未来再次发生?

发帖前进一步查看,我意识到这个支持页面可能会帮助我清理我的命令行用法:

http://answers.perforce.com/articles/KB/2848/

但我仍然想知道清理如此可怕而冗长的烂摊子的最佳方法,以及为什么首先会发生这种情况。

这会有所帮助

git config --global mergetool.keepBackup false

如果您主要担心不提交文件,可以将它们添加到.gitignore:

*_BACKUP_*
*_BASE_*
*_LOCAL_*
*_REMOTE_*

您偶尔可以 运行 git clean -fx 将它们全部删除