首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Windows环境下的Git Diff和Meld

Windows环境下的Git Diff和Meld
EN

Stack Overflow用户
提问于 2013-11-27 09:45:32
回答 5查看 22.8K关注 0票数 18

有人在Windows上用Git做过Meld的工作吗?我正在努力使它发挥作用,但我没有成功。

我已经安装了Meld,当我用两个文件作为参数从命令行调用它时,它很好地区别了它们,所以Meld是正确安装的。然而,我不能让它与吉特(吉特迪夫)。我使用Git的git version 1.8.1.msysgit.1版本。

我尝试了几种方法:我创建了一个shell脚本,meld.sh

代码语言:javascript
复制
#!/bin/bash
meld.exe "$2" "$5"
echo $2
echo $5

用了吉特的话:

代码语言:javascript
复制
[diff]
    tool = meld

[difftool "meld"]
    cmd = \"D:\\meld.sh\"

我试着把它作为一个像这样的扩散工具:

代码语言:javascript
复制
[diff]
    tool = meld

[difftool "meld"]
    cmd = \"C:\\Program Files (x86)\\Meld\\meld\\meld.exe\" 

或者像这样:

代码语言:javascript
复制
[diff]
    tool = meld

[difftool "meld"]
    cmd = '\"/c/Program Files (x86)/Meld/meld/meld.exe\" $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED'

但这似乎真的行不通。我还试图从shell脚本中回显第二个参数($2)和第五个参数($5),但没有输出。我还尝试以几种方式使用批处理脚本:

代码语言:javascript
复制
meld.exe %2 %5

代码语言:javascript
复制
meld.exe %~2 %~5

但它真的行不通..。我如何传递两个版本的文件时,Git使用的扩散到Meld?很烦人..。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-12-05 13:27:30

通常,您可以在Windows上找到类似于这个要旨的示例,其中meld.exe位于PATH中):

代码语言:javascript
复制
git config --global merge.tool meld
git config --global mergetool.meld.cmd 'meld.exe \"$BASE\" \"$LOCAL\" \"$REMOTE\" \"$MERGED\"'

git config --global diff.tool meld
git config --global difftool.meld.cmd 'meld.exe \"$LOCAL\" \"$REMOTE\"'

您可以在"Windows环境下Git合并工具与Meld“中找到更健壮的设置,但想法仍然不变。

“任择议定书”在评论中报告:

对于difftool,命令用.gitconfig编写以下配置:

代码语言:javascript
复制
[diff]
  tool = meld
[difftool "meld"]
  cmd = meld.exe \\\"$LOCAL\\\" \\\"$REMOTE\\\"

我把它们改成:

代码语言:javascript
复制
[diff]
  tool = meld
[difftool "meld"]
  cmd = meld.exe $LOCAL $REMOTE

一切都很顺利。

票数 27
EN

Stack Overflow用户

发布于 2014-07-24 20:27:33

或者更好的是,如果你在一个不允许使用路径的封闭系统中,或者你只是不想污染你的路径空间,你可以把整个路径放到Meld上。

我还喜欢在左边显示我当前的工作代码副本,因此我交换了$REMOTE和$LOCAL参数。还要注意\到/的转换,而不是为了逃避双引号。

代码语言:javascript
复制
[diff]
    tool = meld
[difftool "meld"]
    cmd = \"C:/Program Files (x86)/Meld/meld/meld.exe\" $REMOTE $LOCAL
票数 6
EN

Stack Overflow用户

发布于 2017-01-02 07:28:57

对于Windows 7(甚至其他版本的windows),将这些行添加到.gitconfig文件中。

代码语言:javascript
复制
[diff]
    tool = meld
[merge]
    tool = meld
[difftool "meld"]
    path = C:/Program Files (x86)/Meld/meld.exe
[mergetool "meld"]
    path = C:/Program Files (x86)/Meld/meld.exe

请注意,即使路径包含空格,也不需要对路径使用"。只需记住使用正斜杠而不是后斜杠。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20238883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档