使用BeyondCompare查看GIT中文件之间的差异

时间:2014-03-26 08:00:57

标签: git git-diff beyondcompare beyondcompare3

在我提交更改之前,我希望在GIT中使用BeyondCompare看到差异。如何配置BeyondCompare以查看文件中的差异。

我看了this link,但没有用。

BeyondCompare安装在我系统中的这个位置:C:\program files\Beyond Compare\BCompare.exe

我按照以下两个命令运行:

 git config --global merge.tool bc

git config --global mergetool.bc.path "C:\program files\Beyond Compare\BCompare.exe"

我在Windows 7上使用GIT。

谢谢!

4 个答案:

答案 0 :(得分:18)

这个link讲述了将BeyondComapre设置为git中的diff工具的方法

git config --global diff.tool bc3
git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"

要使用Beyond Compare启动差异,请使用命令“git difftool foofile.txt”。

答案 1 :(得分:6)

我将详细阐述@ SharpCoder接受的答案。

我们运行的第一个命令如下:

git config --global diff.tool bc3

以上命令在.gitconfig目录中的%userprofile%中创建以下条目:

[diff]
    tool = bc3

然后你运行下面的命令(在这种特殊情况下运行此命令是多余的,仅在某些特殊情况下是必需的。你会在短时间内知道它):

git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"

以上命令在.gitconfig文件中创建以下条目:

[difftool "bc3"]
    path = c:/program files/Beyond Compare 3/bcomp.exe

这里要知道的是关键bc3。这是git的一个众所周知的关键字,对应于市场上可用的众所周知的比较工具的特定版本(bc3对应于Beyond Compare工具的第3版)。如果你想看到所有预定义的键只需在git bash上运行git difftool --tool-help命令。它返回下面的列表:

vimdiff
vimdiff2
vimdiff3
araxis
bc
bc3
codecompare
deltawalker
diffmerge
diffuse
ecmerge
emerge
examdiff
gvimdiff
gvimdiff2
gvimdiff3
kdiff3
kompare
meld
opendiff
p4merge
tkdiff
winmerge
xxdiff

您可以使用上述任何键或定义自己的自定义键。如果您想完全设置一个新工具(或新发布的众所周知的工具版本),它不会映射到上面列出的任何键,那么您可以将它映射到上面列出的任何键或<你自己的新的自定义键。

如果必须设置

的比较工具,该怎么办?
  • 绝对新的市场

OR

  • 现有知名工具的新版本已发布,未映射到git中的任何预定义键

就像在我的情况下,我已经安装了超越比较4.超越比较是git的一个众所周知的工具,但默认情况下它的版本4版本没有映射到任何现有的键。所以你可以遵循以下任何一种方法:

  1. 我可以将比较4工具之外的地图映射到已经存在的密钥bc3,这对应于超越比较3版本。我的计算机上没有超越版本3,所以我不在乎。如果我想要,我可以将它映射到上面列表中的任何预定义键,例如examdiff

    如果您将众所周知的工具版本映射到已存在的/适当的 已知密钥然后你不需要运行第二个命令作为他们的安装 路径已经为git 所知。

    例如如果我在我的盒子上安装了超出版本3的版本,那么在我的.gitconfig文件中配置以下内容就足够了:

    [diff]
    tool = bc3
    

    但是如果你想更改默认的关联工具,那么你最终会分别提到path属性,以便git知道你必须启动新工具的exe的路径。以下是狐狸git在比较4之后发布的条目。注意exe的路径:

    [difftool "bc3"]
    path = c:/program files/Beyond Compare 4/bcomp.exe
    
  2. 最干净的方法是为新的比较工具或一个众所周知的工具的新版本共同定义一个新密钥。就像我的情况一样,我定义了一个新的密钥bc4,以便它易于记忆。在这种情况下,您必须运行两个命令,但第二个命令不会设置新工具的可执行文件的路径。相反,您必须为新工具设置cmd属性,如下所示:

    git config --global diff.tool bc4
    
    git config --global difftool.bc4.cmd "\"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"\$LOCAL\" -d \"\$REMOTE\""
    

    运行以上命令会在.gitconfig文件中创建以下条目:

    [diff]
    tool = bc4
    [difftool "bc4"]
    cmd = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"$LOCAL\" -d \"$REMOTE\"
    
  3. 我强烈建议您遵循方法#2,以避免将来对自己造成任何混淆。

答案 2 :(得分:2)

超越比较是一个mergetool和一个diff工具。无论如何,我有两个操作。当我想看到我当前状态和最后一个提交之间的差异时,我写了

    git diff 

用于快速文本输出和小变化

   git difftool

更改多个文件。还要记住,你可以做一个git日志,复制你提交的哈希值的第一部分并做一个

   git difftool (commit1) (commit2)

并一个接一个地比较所有文件(非常高效和有用)

答案 3 :(得分:1)

问题中提到的指令上次我尝试了,但我认为你应该在git bash中运行命令并用正斜杠替换路径中的反斜杠。

git config --global merge.tool bc
git config --global mergetool.bc.path "C:/program files/Beyond Compare/BCompare.exe"
相关问题