冲突的git合并后清理?

时间:2013-03-12 23:01:15

标签: git version-control merge merge-conflict-resolution filemerge

我正在处理的项目中的.h头文件中发生了一个小冲突。该项目在Git。中跟踪。

幸运的是,冲突很容易解决。我用了

git mergetool

并选择默认(opendiff),这似乎是我的Mac上的FileMerge。我做了相应的更改,保存了文件并关闭了。

然后Git问我合并是否成功,我说是的:

Was the merge successful? [y/n] y

但现在,我有:

> git st
# On branch develop
# Changes to be committed:
#   modified:   MyHeader.h
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   MyHeader.h.BACKUP.52920.h
#   MyHeader.h.BASE.52920.h
#   MyHeader.h.LOCAL.52920.h
#   MyHeader.h.REMOTE.52920.h
#   MyHeader.h.orig

哪些额外的垃圾冲突文件是由FileMerge创建的,哪些是由Git创建的?

更重要的是: 如何删除它们?

3 个答案:

答案 0 :(得分:45)

您可以像删除任何其他文件一样删除它们。例如:

rm MyHeader.h.orig

或者,如果没有其他未跟踪的文件,则在提交

之后
git commit -a

您可以使用

清理您的存储库
git clean -n
git clean -f

git clean -n会告诉你git clean -f会做什么,所以你可以确定它是你想要的。

答案 1 :(得分:8)

如果它们是唯一未跟踪的文件,则可以使用git clean删除它们。使用-n标记运行一次以查看将删除的内容,如果您确定,请使用-f运行它。如果您要保留未跟踪的文件,请不要使用它!

答案 2 :(得分:1)

首先提交合并。

一旦您对一切顺利感到满意,只需手动删除这些额外文件(例如,使用rm <filename>)。