移动git的运行合并到超出比较

时间:2014-03-07 09:59:47

标签: git git-merge beyondcompare3

我在当地分行做了一些改动。我没有承诺。我刚刚将所有更改编入索引并将其移至存储区。 现在我做了一个

git pull

git pull之后我做了

git stash apply

现在有一些冲突。在eclipse中,我能够以正常的git格式看到冲突

<<<< Updated Upstream
ksldjflsdk
sdlkfjdslk
sdlkfjsdlk
===========
sdlkfjdslk
dslkfjdslkfj
dsklfjsdlkjf
>>>>> Stashed Changes

现在有一些文件存在很多冲突。我很难向上看和合并。有没有办法可以将当前的合并流程移到超出比较的地步。

我使用的是git版本1.8.3和Beyond Compare 3.2.3

2 个答案:

答案 0 :(得分:15)

我假设你可以从命令行启动Beyond Compare,而且你在Windows上。您可以将以下行添加到全局.gitconfig文件中:

[merge]
    tool = bc3
[diff]
    tool = bc3
[difftool "bc3"]
    cmd = "\"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\""
[mergetool "bc3"]
    cmd = "\"c:/program files (x86)/beyond compare 3/bcomp.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""

编辑:添加Mac命令straight from site

git config --global diff.tool bc3
git config --global merge.tool bc3
git config --global mergetool.bc3.trustExitCode true

然后您可以使用以下命令简单地启动冲突解决:

git mergetool # Starts Beyond Compare for all conflicted files, one at a time.
git mergetool -- <file> # Starts B.C. just for the specified file.

答案 1 :(得分:1)

只是基于先前答案的更新,其用户似乎处于非活动状态 - 请投票支持另一篇文章 - 对于 Beyond Compare 4 将是(唯一的区别是默认目录中包含 4 而不是 3 和 bcomp.exe变成 bcompare.exe) [编辑:Windows 机器上的全局 .gitconfig 通常在用户的主目录中,即 ~ 在 Git Bash 或类似 C:\Users\YourUserName 的东西]

[merge]
    tool = bcompare
[diff]
    tool = bcompare
[difftool "bcompare"]
    cmd = "\"c:/program files/beyond compare 4/bcompare.exe\" \"$LOCAL\" \"$REMOTE\""
[mergetool "bcompare"]
    cmd = "\"c:/program files/beyond compare 4/bcompare.exe\" \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""

还有 git mergetool 似乎生成以 .orig 结尾的备份文件 - BC 不必对它做任何事情。 Here 有一个建议是事后删除这些文件并单独保留全局 git 设置(语法适用于 Git Bash):

find . -name *.orig -delete