3

我最近购买了超越 compare pro 来合并共享的代码git(我对它的理解非常有限)。我现在有两个分支, amaster和 a feature。我最近master从远程拉出,所以现在在andmaster之间的共同祖先之前有一些提交。masterfeature

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

git checkout master
git pull origin master
git push origin master

所以在这一点上 myfeature是后面的一些提交和前面的一些提交master。要将提交合并masterfeature我做的:

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

所有其他文件都给出了失败的合并错误,甚至没有打开超越比较合并工具来进行合并。

  • 第一个提示说(m)odified or (d)eleted,这是否意味着由于合并,我必须在本地和远程之间选择要选择的文件?
  • 第二个提示告诉我合并失败,为什么会这样?

编辑

我的 .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
4

2 回答 2

4

第一个提示说(m)修改或(d)删除,这是否意味着我必须在本地和远程之间选择哪个文件作为合并的结果?

是的。可能您想选择 (d) 已删除状态,假设您希望这些文件在您的feature分支中保持删除状态,并且不关心自从您最初删除它们后它们可能如何更改。

通常,您master的目标是始终与遥控器同步。feature正如您所做的那样,本地更改(例如删除文件)已在分支中正确完成,这很好。如果您的更改纯粹是本地的,从不打算成为主项目的永久部分,那么它们将feature永远保留在分支中,并且您偶尔会在从远程拉取新更新时从masterto合并feature,就像您正在做的那样。唯一一次你想从合并回来featuremaster然后push是为使用该项目的每个人改变一些东西。

第二个提示告诉我合并失败,为什么会这样?

  • 您是否解决了 Beyond Compare 中指出的所有冲突(在页边空白处标有“!”)?
  • 你的中间栏是否看起来像你想要的每一个差异?
  • 你保存了合并的文件吗?

如果其中任何一个的答案是“否”,那么您返回到 git,文件中仍然存在合并标记,这意味着“我没有完成”。换句话说,该合并“失败”,这意味着它没有完全成功完成。

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

所有其他文件都给出了失败的合并错误,甚至没有打开超越比较合并工具来进行合并。

这似乎很奇怪。通常 git 会一一继续。抱歉,我不能在这里提供更多帮助。

于 2017-07-16T20:17:46.043 回答
1

如果您想在 Beyond Compare 中查看未解决的冲突,您可以运行git mergetool这将打开与您的默认合并工具的冲突。如果您还没有,您必须先设置 git 才能使用 Beyond Compare。

在此处找到配置说明。

于 2017-07-10T15:40:44.623 回答