首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >TortoiseMerge可以用作Windows Git Bash的扩散工具吗?

TortoiseMerge可以用作Windows Git Bash的扩散工具吗?
EN

Stack Overflow用户
提问于 2013-05-11 11:10:27
回答 7查看 18.3K关注 0票数 52

我刚刚开始使用Git。我想使用TortoiseMerge作为difftool和mergetool。

在我的$HOME/.gitconfig中,我有以下部分。我删除了这个问题的user和color部分。

代码语言:javascript
复制
[merge]
    tool = tortoisemerge
[mergetool "tortoisemerge"]
    cmd = \"TortoiseMerge.exe\" -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"
[diff]
    tool = tortoisemerge
[difftool "tortoisemerge"]
    cmd = \"TortoiseMerge.exe\" -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"

如果我在Git Bash提示符下输入tortoisemerge,它就会加载。这是已知的在路径上。但是如果我输入这个命令,我会得到以下错误。

代码语言:javascript
复制
Rich:mygittest (master *)
$ git difftool
error: 'tortoisemerge' can only be used to resolve merges
merge tool candidates: kompare emerge vimdiff
No known merge resolution program available.
external diff died, stopping at readme.txt.
Rich:mygittest (master *)
$ 

为了让它工作,我还有什么不理解的地方?Tortoisemerge与TortoiseSVN一起安装。

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2013-05-11 15:06:19

以下设置对我来说很好。但是,我使用的是TortoiseGit而不是TortoiseSVN。注意diff参数的不同。

代码语言:javascript
复制
[diff]
  tool = tortoisediff
[difftool]
  prompt = false
[merge]
  tool = tortoisemerge
[mergetool]
  prompt = false
  keepBackup = false
[difftool "tortoisediff"]
  cmd = \""c:/Program Files/TortoiseGIT/bin/TortoiseGitMerge.exe"\" -mine "$REMOTE" -base "$LOCAL"
[mergetool "tortoisemerge"]
  cmd = \""c:/Program Files/TortoiseGIT/bin/TortoiseGitMerge.exe"\" -base "$BASE" -theirs "$REMOTE" -mine "$LOCAL" -merged "$MERGED"
票数 71
EN

Stack Overflow用户

发布于 2013-09-12 23:22:26

为了正确处理带有空格的文件名,您应该将@melbourn答案的最后一行更改为

代码语言:javascript
复制
cmd = \""c:/Program Files/TortoiseGIT/bin/TortoiseGitMerge.exe"\" -base "$BASE" -theirs "$REMOTE" -mine "$LOCAL" -merged "$MERGED"
票数 7
EN

Stack Overflow用户

发布于 2021-11-17 02:18:26

这是一种更简单的方法,只需在git bash中运行以下命令:

代码语言:javascript
复制
git config --global merge.tool tortoisemerge
git config --global diff.tool tortoisediff
git config --global difftool.tortoisediff.cmd "TortoiseGitMerge \$LOCAL \$REMOTE"

就这样办。

-供进一步阅读-

代码语言:javascript
复制
# you may want to disable prompt or merge backup
git config --global mergetool.keepBackup false
git config --global difftool.prompt false
git config --global mergetool.prompt false

# set the path only when it's not found in system path
git config --global mergetool.tortoisemerge.path "C:\Program Files\TortoiseGit\bin\TortoiseGitMerge.exe" 
git config --global difftool.tortoisdiff.path "C:\Program Files\TortoiseGit\bin\TortoiseGitMerge.exe"

要设置mergetool,您只需设置正确的mergetool名称。这是官方支持的。

Git for windows installer包含一个shell文件,用于将tortoisegitmerge作为合并工具运行。它定位C:\Program Files\Git\mingw64\libexec\git-core\mergetools。(Git提供了4个用于合并的变量:$BASE $LOCAL $REMOTE $MERGED,您可以在shell文件中检查它们。)

您可以使用以下命令检查计算机上支持的所有支持的合并/比较工具:

代码语言:javascript
复制
git difftool --tool-help
git mergetool --tool-help

作为git diff工具运行tortoisegitmerge不是git官方支持的工具,也许是因为这个工具不支持目录比较(git difftool -d)。因此,您需要配置difftool cmd以将其用作git difftool。

tortoisegitmerge工具在以下位置提供了手册:

https://tortoisegit.org/docs/tortoisegitmerge/tme-automation.html

你可以找到做文件比较最简单的方法是:

TortoiseGitMerge BaseFilePath MyFilePath [ TheirFilePath ]

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

https://stackoverflow.com/questions/16493368

复制
相关文章

相似问题

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