Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git与beyond compare合并_Git_Github_Merge_Beyondcompare_Beyondcompare4 - Fatal编程技术网

Git与beyond compare合并

Git与beyond compare合并,git,github,merge,beyondcompare,beyondcompare4,Git,Github,Merge,Beyondcompare,Beyondcompare4,我最近购买了beyond compare pro来合并与git共享的代码(我对其了解非常有限)。 我现在有两个分支,一个是主机和一个功能。我最近从远程拉取了主机,因此现在主机比主机和功能之间的共同祖先早了几次提交 由于我的分支feature有大部分删除,我想将master合并到feature中,而不是相反(这有意义吗?)。所以我基本上做到了 git checkout master git pull origin master git push origin master 因此,在这一点上,我的

我最近购买了beyond compare pro来合并与git共享的代码(我对其了解非常有限)。 我现在有两个分支,一个是
主机
和一个
功能
。我最近从远程拉取了
主机
,因此现在
主机
主机
功能
之间的共同祖先早了几次提交

由于我的分支
feature
有大部分删除,我想将
master
合并到
feature
中,而不是相反(这有意义吗?)。所以我基本上做到了

git checkout master
git pull origin master
git push origin master
因此,在这一点上,我的
功能
是在
主控
之前的几次提交和几次提交。要将
master
的提交合并到
feature
中,我执行了以下操作:

git checkout feature
git merge master
git mergetool
现在,我收到一系列消息提示,如

Deleted merge conflict for 'ED/build/make/rules.mk':
  {local}: deleted
  {remote}: modified file
Use (m)odified or (d)eleted file, or (a)bort? m

Normal merge conflict for 'ED/src/driver/ed_model.F90':
  {local}: modified file
  {remote}: modified file
merge of ED/src/driver/ed_model.F90 failed
Continue merging other unresolved paths [y/n]? y
所有其他文件都会出现失败的合并错误,甚至没有打开beyondcompare合并工具进行合并

  • 第一个提示是
    (m)odified或(d)eleted
    ,这是否意味着由于合并,我必须在本地和远程之间选择哪个文件
  • 第二个提示告诉我合并失败,为什么会发生这种情况
编辑

my.gitconfig的相关部分是

[diff]
    tool = bc3
[difftool]
        prompt = false
[difftool "bc3"]
    trustExitCode = true
[core]
    fileMode = false
    symlink = false
    ignorecase = true
[merge]
    tool = bc3
[mergetool "bc3"]
    trustExitCode = true
[alias]
    difftool = difftool --dir-dif --no-symlinks

如果要在Beyond Compare中查看未解决的冲突,可以运行
git mergetool
,它将打开与默认合并工具的冲突。如果您还没有安装git,则必须首先将其设置为使用Beyond Compare

有关配置的说明已找到

第一个提示是(m)odified或(d)eleted,这是否意味着由于合并,我必须在本地和远程之间选择哪个文件

对。假设您希望这些文件在
功能
分支中保持删除状态,并且不关心自您最初删除它们以来它们可能已被更改,那么您可能希望选择(d)eleted状态

通常,您的
主机
应始终与遥控器同步。本地更改(如删除文件)在
功能
分支中正确完成,这很好。如果您的更改纯粹是本地的,从未打算成为主项目的永久部分,那么它们将永远停留在
功能
分支中,并且您偶尔会从
主功能
合并到
功能
,只要您从远程获取新的更新,就像您正在做的那样。您要从
feature
合并回
master
然后
push
的唯一时间是为使用该项目的每个人更改某些内容

第二个提示告诉我合并失败,为什么会发生这种情况

  • 您是否解决了《超越比较》中提到的所有冲突(在页边空白处用“!”标记)
  • 你的中间栏是否看起来像你想要的那样
  • 你保存合并的文件了吗
如果其中任何一个的答案是“否”,那么返回git时文件中仍然有合并标记,这意味着“我没有完成”。换句话说,该合并“失败”,意味着它没有完全成功完成

我不会担心文件地址看起来有误。当git试图解析合并时,它会将三个不同的版本(远程、本地、合并)复制到三个临时文件中。完成编辑和合并后,它会将“合并”的文件复制回本地文件

所有其他文件都会出现失败的合并错误,甚至没有打开beyondcompare合并工具进行合并


这似乎很奇怪。通常git会一个接一个地继续。很抱歉,我无法在此提供更多帮助。

在运行合并工具后,将显示错误。我按照指示设置了它。这不是设置的问题,因为我已经在不同的场合运行了mergetool。因此,您在过去解决了与Beyond Compare的合并冲突,还是这是第一次它不是自动解决的?因此,情况如下:最初我尝试将功能分支合并到主功能中。我认为这本身更有意义。然而,我后来注意到,我在功能中删除的所有内容都包含在合并文件中,因为它在主控台上。然后,我决定将主机合并到功能中。在第一种情况下,当将功能合并到主功能中时,BC mergetool将弹出所有3个窗口和合并的窗口。现在,它只对.gitignore执行此操作,并跳过所有其他文件,并显示我报告的错误消息…请向我们显示您的合并工具的配置。我猜错误部分与BC有(/被git激活)有关3个文件比较的路径错误,因为地址都是相同的,并附加了本地/远程/基本关键字。请尝试指定beyond compare 3的路径。如果BC正确打开,会有什么变化?这也是它通常的设置方式。所以你是说,超越比较实际上是开放的吗?对不起,我错过了。