Git如何合并"忽略变化"在Eclipse中?

时间:2014-06-19 11:53:09

标签: eclipse git version-control merge

我们几周前已经从SVN改为Git。团队正在努力适应它,我不断地帮助和教育他们,因为我多年来一直在使用Git。

我相信git pull --rebase,其他人只是合并合并和垃圾邮件的历史。它看起来很丑陋:

This is the history so far

我们不要谈论历史的结构,而是谈谈在红点发生的一个简单场景。让我发表一些声明:

  1. 这是蓝点和绿点的合并。
  2. 两个提交的共同祖先是黄点。
  3. 我认为以上是正确的。这是我的问题。那个人A编辑了文件a,而另一个人(名叫B)编辑了文件b。承诺和推动,但B迟到所以他必须合并,我们最终在红点。现在的问题是,文件a中A的变化已经消失。

    这对我来说没有意义,原因如下:

    1. 如果发生冲突,git和那里的所有IDE都应该这样说,但这并没有发生。 (没有冲突,因为他们编辑了单独的文件)
    2. 如果编辑了不同的文件,则合并应包含两个更改。 (但事实并非如此)。
    3. 用git log,blame,gitk,gitg等花了1.5个小时查看历史记录后,我用两种方式重新创建了这个场景:

      1. 在蓝色和绿色圆点处创建了两个新分支,然后将分支从一个分支合并到另一个分支,反之亦然。我最终得到了预期的结果,A&B和B的变化都没有,没有冲突。
      2. 我将存储库复制到不同的位置,设置了新的原点并恢复了历史记录,因此一个存储库的HEAD位于蓝点,另一个位于绿色,而原点(另一个第三存储库)与一个完全相同。重新播放了这些事件(git pull),我最终得到了预期的结果,历史看起来与图片上的相同,但A&#39和B&B的变化都在那里。
      3. 编辑: 使用git merge -s ours(感谢@Edward Thomson澄清)git将完全忽略其他树的更改。

        但是有人可以如何设置Eclipse,所以它以这种方式合并?

0 个答案:

没有答案