如何解决所有文件中的相同冲突

时间:2018-02-23 15:39:23

标签: java git github

我将来自另一个repo的更改合并到我的repo中,并导致一个冲突,即所有Java类中的版权注释:

<<<<<<< HEAD
 * Copyright (C) 2010-2017 Peter, Sofi, and Others
=======
 * Copyright (C) 2010-2018 Peter, Sofi, and Others
>>>>>>> 01e35t13155963q84e8e05b7101235488c50f4e639eew3c4

冲突很容易解决,但问题是这个冲突出现在50多个Java类中,我认为这些类很难通过所有这些类并手动解决冲突。

是否有一种快速方法可以自动解决所有类中的此冲突?顺便说一下,我使用Eclipse。

2 个答案:

答案 0 :(得分:2)

您可以使用git rerere

要启用rerere功能,您只需运行此配置设置:

$ git config --global rerere.enabled true

enter image description here

当我们将两个分支合并在一起时,我们会发生合并冲突:

$ git merge i18n-world
Auto-merging hello.rb
CONFLICT (content): Merge conflict in hello.rb
Recorded preimage for 'hello.rb'
Automatic merge failed; fix conflicts and then commit the result.

现在你可以解决它只是put'hola mundo'并且你可以再次运行git rerere diff以查看rerere会记住什么:

$ git rerere diff
--- a/hello.rb
+++ b/hello.rb
@@ -1,11 +1,7 @@
 #! /usr/bin/env ruby

 def hello
-<<<<<<<
-  puts 'hello mundo'
-=======
-  puts 'hola world'
->>>>>>>
+  puts 'hola mundo'
 end

所以基本上说,当Git看到hello.rb文件中的一个大块冲突,一方面有“hello mundo”而另一方面有“hola world”时,它会将其解析为“hola mundo”。

enter image description here

答案 1 :(得分:1)

您正在寻找的是git rerere。这将为您保存冲突解决方案。您可以找到一些额外信息here in this doc entry。如果下一个冲突解决方案完全相同,这将重用冲突解决方案。