相关疑难解决方法(0)

如何使用我喜欢的diff工具/查看器查看'git diff'输出?

当我输入时git diff,我想用我选择的视觉差异工具(Windows上的SourceGear"diffmerge")查看输出.如何配置git来执行此操作?

git diff diffmerge difftool git-difftool

735
推荐指数
17
解决办法
42万
查看次数

git-merge是否可以忽略行尾差异?

是否可以git merge忽略行尾差异?

也许我问的是错误的问题......但是:

我试过了,config.crlf input但事情变得有点乱,失控,特别是当我在事后应用它时.

首先,在应用此选项之前,在事实之后应用此配置似乎不会影响已提交到存储库的文件.另一件事是突然所有提交现在导致许多关于CRLF被转换为LF的恼人警告消息.

说实话,我真的不在乎使用什么行结尾,我个人更喜欢Unix风格\n,但无论如何.我所关心的只是为了git merge变得更聪明,而忽略了行尾的差异.

有时我有两个相同的文件,但是git会将它们标记为冲突(并且冲突是整个文件),因为它们使用不同的行结束字符.

更新:

我发现git diff接受一个--ignore-space-at-eol选项,是否也可以git merge使用此选项?

git merge git-svn line-endings eol

146
推荐指数
4
解决办法
7万
查看次数

在Git中使用Winmerge来编写diff

有没有办法在git中使用Winmerge来做Diffs?

git diff winmerge msysgit

97
推荐指数
6
解决办法
6万
查看次数

Msys Git Merge工具命令选项问题

我在Windows机器上使用msys Git进行源代码控制,我正在试图弄清楚如何让我的合并工具WinMerge与Git一起工作.

我已经按照我的能力尽可能地遵循了这个博客上的说明,因为它是我发现的最接近我正在尝试做的事情.基本上我做的是:

修改我的.gitconfig文件以包含以下内容:

[merge]
    tool = winmerge

[mergetool "winmerge"]
    cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" "$PWD/$LOCAL" "$PWD/$REMOTE" "$PWD/$MERGED"  
        trustExitCode = false  
    keepBackup = false

这几乎正​​常.当我尝试从Git运行合并工具时,WinMerge给我一个错误,说它无法找到文件的路径,这是完全合理的,因为它正在寻找的路径是:

C:\MY\WORKING\DIRECTORY\-e
C:\MY\WORKING\DIRECTORY\-ub

看起来Git正在将选项传递给合并工具,而不是本地和远程文件名,如果一切正常,我希望传递这些文件名.

我在网上搜索了Git的合并文档,但我似乎找不到任何与我想要做的事情有关的事情.我的猜测是解决方案将是以下之一:

  1. $LOCAL&$REMOTE变量更改为正确的值,假设$LOCAL&$REMOTE不正确.
  2. 编写一个.bat脚本来调用WinMergeU,并处理Git在我的.bat脚本逻辑中发送给合并工具的参数.

git version-control merge batch-file

20
推荐指数
3
解决办法
9396
查看次数

如何将Araxis设置为MSYS git的差异/合并工具?

我正在尝试使用Araxis Merge作为MSYSGit的差异/合并工具.

我在网上找到了一些资源:

  • Araxis网站上,他们提到了一种"简单"的方式,但它暗示了一个不属于我的发行版的可执行文件(araxisgitdiff.exe和araxisgitmerge.exe).
  • 我也在gitguru中找到了一些信息,但实际的信息是:Araxis充其量只是稀疏,我无法做出任何改变.
  • 最后,有一些旧的stackoverflow帖子的信息,但建议的方法不适合我.这个特定的信息面向OS X.我尽可能地"翻译"到Windows,但没有成功:

我建立 /bin/git-diff-driver.sh

#!/bin/sh

"/c/Program Files/Araxis/Araxis Merge/compare.exe" -title1:"$1 (repo version)" -title2:"$1 " -max "$2" "$5"
Run Code Online (Sandbox Code Playgroud)

并编辑 gitconfig

[merge]
    tool = araxismerge
[mergetool "araxismerge"]
    cmd = "/c/Program Files/Araxis/Araxis Merge/compare.exe" -3 -merge -wait $LOCAL $BASE $REMOTE $MERGED
[diff]
    external = "/bin/git-diff-driver.sh"
Run Code Online (Sandbox Code Playgroud)

我得到的唯一结果是:

$ git diff HEAD ^ HEAD
外部差异死亡,停在PowerEditor/src/Notepad_plus.cpp.


编辑:

我也尝试过使用"c:/Program Files/Araxis/Araxis Merge/compare.exe"其中一个答案所建议的exe ,并得到相同的结果.


编辑:

我发现如果你使用TortoiseGit它可以轻松设置,但它似乎自己处理diff并且没有来自TortoiseGit的设置给出任何关于如何在从命令行调用diff时将Araxis设置为合并工具的指示.


编辑:

所以,问题是:是否有人成功使用Araxis Merge来区分和合并MSYSGit,如果是这样,你怎么样?

windows git diff msysgit araxis

14
推荐指数
3
解决办法
2万
查看次数