13

我在本地分支机构进行了某些更改。我没有答应。我只是将所有更改编入索引并将它们移动到存储区。现在我做了一个

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

4

2 回答 2

23

我假设您可以从命令行启动 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 命令:

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.
于 2014-03-07T10:06:22.413 回答
2

只是基于先前答案的更新,其用户似乎处于非活动状态 - 请为其他帖子投票 - 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 不必对它做任何事情。这里有一个建议是在之后删除这些文件并单独保留全局 git 设置(语法适用于 Git Bash):

find . -name *.orig -delete
于 2021-02-17T09:18:49.000 回答