在Linux中,我最喜欢的合并工具是Meld,我使用或配置它与Git一起工作时没有任何问题.然而,在Windows中它是一个不同的故事.
首先,我从我在这里找到的软件包中安装了Meld:https://code.google.com/p/meld-installer/
然后,我配置了我的.gitconfig,以支持Meld作为默认的mergetool
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\meld\\meld.exe
keepBackup = false
trustExitCode = false
Run Code Online (Sandbox Code Playgroud)
所以,当我遇到冲突时,我会做git difftool而Meld确实打开了.但是,Git写入传递给diff工具的文件的路径不正确.例如,即使Git在存储库目录(我称之为git mergetool的位置)中生成BASE,LOCAL和REMOTE文件,Meld也会尝试打开可执行文件目录中的每个文件.
Meld尝试打开C:\ Program Files(x86)\ Meld\meld\roses.txt.LOCAL.2760.txt,而不是打开C:\ repo\roses.txt.LOCAL.2760.txt.
有没有人遇到过这个或知道如何配置Git/Meld在Windows中正常工作?
Aru*_*gin 138
你为什么不在Windows上使用git bash?
安装后简单:
git config --global merge.tool meld
git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe" <- path to meld here
Run Code Online (Sandbox Code Playgroud)
就这样!
小智 26
Schuess,小心目录中的空格字符!
[merge]
tool = meld
[mergetool "meld"]
prompt = false
keepBackup = false
keepTemporaries = false
path = C:/Program Files (x86)/Meld/meld.exe
cmd = '\"/c/Program Files (x86)/Meld/meld.exe\" $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED'
Run Code Online (Sandbox Code Playgroud)
sch*_*ess 10
我遇到了完全相同的问题,发现我不得不蛮力地让它发挥作用.这是我放在.gitconfig文件中的内容.(注意我的meld可执行文件位于不同的位置)
[merge]
tool = meld
[mergetool "meld"]
cmd = "/c/Meld/meld/meld.exe $PWD/$LOCAL $PWD/$BASE $PWD/$REMOTE --output=$PWD/$MERGED"
Run Code Online (Sandbox Code Playgroud)
Gab*_*les 10
如何使用 meldgit difftool代替git diff(另请参阅下面的 meld 屏幕截图):
下载并安装适用于 Windows 的 Git,其中包括一个“Git Bash”类似 Linux 的终端,一旦您安装了适用于 Windows 的 Git,即可通过 Windows 资源管理器中任何文件夹中的右键单击菜单访问该终端。
从这里下载并安装 meld:https : //meldmerge.org/。
然后,使meld你的git difftool,你可以使用这两个命令,Git的内部用于Windows的bash终端(如Arugin说),使用到Meld.exe正确的路径:
git config --global merge.tool meld
git config --global mergetool.meld.path "C:\Program Files (x86)\Meld\Meld.exe"
Run Code Online (Sandbox Code Playgroud)
或者您可以直接编辑您的C:\Users\YOUR_USER_NAME\.gitconfig文件并将以下内容添加到它的末尾(注意这里强制使用双反斜杠 [ \\] 作为路径分隔符!):
[merge]
tool = meld
[mergetool "meld"]
path = C:\\Program Files (x86)\\Meld\\Meld.exe
Run Code Online (Sandbox Code Playgroud)
现在调用git difftool您的Git for Windows bash 终端,Meld 将作为您的默认 difftool 查看器打开!如果您还不知道:您可以通过在 Windows 资源管理器中的文件夹中右键单击并转到 -->“Git Bash”或任何名称来在 Windows 中打开所述终端。
如果没有别的,我也不妨将 Linux 说明也放在这里供我自己参考:
对于 Linux,它甚至更容易:
# 1. install meld
sudo apt update
sudo apt install meld
# 2. edit your ~/.gitconfig file (gedit GUI editor will open)
gedit ~/.gitconfig
Run Code Online (Sandbox Code Playgroud)
然后添加到 .gitconfig 文件的底部:
[diff]
tool = meld
Run Code Online (Sandbox Code Playgroud)
就是这样!git difftool现在适用于 Linux Ubuntu!
在 Mac OS 上安装 Meld:https : //superuser.com/questions/360007/how-to-install-meld-with-homebrew-on-mac-osx/1177575#1177575。
(来源)

# 1. In place of `git diff`:
git difftool
# 2. Calling meld directly to compare two files:
meld path/to/file1.txt path/to/file2.txt
Run Code Online (Sandbox Code Playgroud)
git blametool]是否有类似于 bzr qannotate 的 git blame gui?| 归档时间: |
|
| 查看次数: |
58755 次 |
| 最近记录: |