当我输入时git diff,我想用我选择的视觉差异工具(Windows上的SourceGear"diffmerge")查看输出.如何配置git来执行此操作?
是否可以git merge忽略行尾差异?
也许我问的是错误的问题......但是:
我试过了,config.crlf input但事情变得有点乱,失控,特别是当我在事后应用它时.
首先,在应用此选项之前,在事实之后应用此配置似乎不会影响已提交到存储库的文件.另一件事是突然所有提交现在导致许多关于CRLF被转换为LF的恼人警告消息.
说实话,我真的不在乎使用什么行结尾,我个人更喜欢Unix风格\n,但无论如何.我所关心的只是为了git merge变得更聪明,而忽略了行尾的差异.
有时我有两个相同的文件,但是git会将它们标记为冲突(并且冲突是整个文件),因为它们使用不同的行结束字符.
我发现git diff接受一个--ignore-space-at-eol选项,是否也可以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的合并文档,但我似乎找不到任何与我想要做的事情有关的事情.我的猜测是解决方案将是以下之一:
$LOCAL&$REMOTE变量更改为正确的值,假设$LOCAL&$REMOTE不正确. .bat脚本来调用WinMergeU,并处理Git在我的.bat脚本逻辑中发送给合并工具的参数.我正在尝试使用Araxis Merge作为MSYSGit的差异/合并工具.
我在网上找到了一些资源:
我建立 /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,如果是这样,你怎么样?
git ×5
diff ×3
merge ×2
msysgit ×2
araxis ×1
batch-file ×1
diffmerge ×1
difftool ×1
eol ×1
git-difftool ×1
git-svn ×1
line-endings ×1
windows ×1
winmerge ×1