使用DiffMerge设置git以使用diffmerge模拟Mercurials设置

时间:2011-08-15 19:04:04

标签: git mercurial diffmerge

我想知道是否有办法设置git和diffmerge,以便在执行以下命令时:git difftool diffmerge会弹出并显示所有已修改文件的文件列表,而不是循环显示它们通过命令行?

我认为必须设置〜/ .gitconfig文件。这是我目前的〜/ .gitconfig:

[merge]
    tool = diffmerge
[mergetool "diffmerge"]
    cmd = /Applications/DiffMerge.app/Contents/MacOS/diffmerge --merge --result=$MERGED $LOCAL $BASE $REMOTE
[mergetool]
    keepBackup = false
[diff]
    tool = diffmerge
[difftool "diffmerge"]
    cmd = /Applications/DiffMerge.app/Contents/MacOS/diffmerge $LOCAL $REMOTE

请参阅下面的Mercurials(HG)呈现DiffMerge的方法。 Mercurial's way of diffmerge

4 个答案:

答案 0 :(得分:1)

.gitconfig

中应该包含以下几行
[diff]
    tool = diffmerge
[difftool "diffmerge"]
    cmd = /Applications/DiffMerge.app/Contents/MacOS/DiffMerge \"$LOCAL\" \"$REMOTE\"

答案 1 :(得分:1)

Git在默认设置中不提供目录差异。看到这个相关的SO问题:

  

git difftool, open all diff files immediately, not in serial

另外,请参阅GitHub上的git diffall项目,该项目将此功能作为附加脚本实现。

答案 2 :(得分:1)

请注意,您现在可以(git 1.7.11)差异目录(即在打开difftool之前显示要比较的所有文件)

请参阅“git difftool to give directory compare?

换句话说,git现在 “固有地处理文件夹差异。”

答案 3 :(得分:0)

在这里查看问题和答案,了解有关使用diffmerge设置git的详细信息:

Problem with git + DiffMerge on OS X