1

我刚刚合并了两个分支“branch1”和“branch2”。问题是现在有很多冲突,有时会出现重复的内容(有可能吗??)。

我想要做的是强制将“branch1”中的某些文件与“branch2”合并,相反,强制将“branch2”中的某些文件与“branch1”合并,因为我知道我现在在“branch1”上。可能吗 ?

更新: git-merge 似乎有问题?假设我保留了 branch1 版本,那么

echo $this->fetch('prehome.html');
        die; 

会出现两次,请参阅:

protected function prehomepage()
    {
        $var = 'myvar';

        echo $this->fetch('prehome.html');
        die;
    }

<<<<<<< HEAD
    $this->mySmarty->assign('title', 'Primagora');

    echo $this->fetch('prehome.html');
    die;
  }

  /**
   * Generate the campaign block for the general sidebar, called through AJAX.
   */
  protected function getCampaignBlock()
  {
    $from = Utils::fromGet('from');
    echo $this->getCampaignSidebarBlock($from);
    die();
  }
=======
    /**
     * Generate the campaign block for the general sidebar, called through AJAX.
     */
    protected function getCampaignBlock()
    {
        $from = Utils::fromGet('from');
        echo $this->getCampaignSidebarBlock($from);
        die();
    }
>>>>>>> branch2
4

3 回答 3

1

在与冲突合并时(如果git config merge.conflictstyle diff3已设置),您可以:

  • 忽略该合并并保留您的原始版本(来自branch1):
git show :2:full_path > 文件
# 或者
git checkout-index --stage=2 -- 文件
  • 忽略该合并并保留其他版本(来自branch2):
git show :3:full_path > 文件
# 或者
git checkout-index --stage=3 -- 文件

从那里,git addgit commit

于 2013-03-08T12:40:19.610 回答
0

您显示的文件是正在进行的 git merge whit 冲突中的中间文件。线从

<<<<<<< HEAD

=======

是一个版本,从

========

>>>>>branch1

是另一个。然后,您可以手动编辑文件并选择要使用的版本或运行工具来帮助您解决冲突。git 命令 mergetool 将指导您解决所有冲突 https://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html

git mergetool

很可能必须将 git mergetool 配置为使用您最喜欢的冲突解决程序。我发现融合非常有用和直观。

在 Windows 上使用 Meld 的 Git mergetool如何将 Meld 设置为 git mergetool

于 2013-03-06T14:15:00.210 回答
0

您应该始终尝试解决冲突。他们告诉你很多关于正在发生的事情。

Netbeans 可以与 git 一起使用,这使得解决冲突成为一项相当简单的任务。您可以一一解决冲突或选择要保留的版本。

重复内容是什么意思?如果两个文件中的内容相同,则不可能将其标记为更改。

于 2013-03-06T11:19:22.290 回答