标签: mergetool

Git:如何将KDiff3配置为合并工具和差异工具

最近我使用的是GitExtension 2.46,但具有相同功能的Git版本是1.9.4.msysgit.2.我只想使用Git命令,我卸载了GitExtension并安装了GitKDiff3的最新版本.

当我进行合并并发生冲突时,我运行以下命令:

$ git mergetool
Run Code Online (Sandbox Code Playgroud)

然后我收到消息:

合并工具kdiff3不能用作'kdiff3'.

我猜它必须是KDiff3路径.

环境

  • 操作系统:Windows 10
  • Git 2.6.1.windows.1
  • KDiff3 0.9.98(64位)

问题:

  • 我必须在.gitconfig文件中配置如何$ git mergetool使用版本LOCAL,REMOTE,BASEMERGED冲突文件打开KDiff3 GUI 的命令?

  • 如何配置它使用它有diff-tool?

git mergetool git-merge kdiff3

196
推荐指数
8
解决办法
15万
查看次数

如何使用vimdiff解决冲突?

我刚刚在git中将一个分支合并到了我的主人中,我得到了Automatic merge failed; fix conflicts and then commit the result.现在我跑了git mergetool,vimdiff打开了下面的图像.我不知道如何使用vimdiff.这里的每个小组意味着什么,我应该如何解决合并冲突?

在此输入图像描述

git vim mergetool git-merge git-merge-conflict

142
推荐指数
3
解决办法
5万
查看次数

如何使用Visual Studio代码作为Git MergeTool的默认编辑器

今天我试图使用git mergetoolWindows命令提示符,并意识到它默认使用VIM,这很酷,但我更喜欢VSCode.

如何将Visual Studio代码功能作为我的GUI来处理Git的合并冲突(甚至作为差异化工具)?

git cmd mergetool git-merge visual-studio-code

100
推荐指数
4
解决办法
4万
查看次数

与"git mergetool"合并

我发现git mergetool是一个方便的实用程序,用于直观地合并差异,但我正在进行的方式似乎真的很不稳定.基本上,当报告冲突时,我的过程看起来像这样:

  1. 执行git mergetool
  2. 在提示符下,按Enter键启动我的差异工具(Meld或FileMerge,具体取决于哪台计算机)
  3. 解决冲突
  4. 保存更改
  5. 关闭diff工具

如果我有多个冲突,请冲洗,重复.是的,这是我为合并中的每个冲突打开和关闭我的差异查看器一次.因为它是从命令行启动的,关​​闭它是我知道告诉git mergetool的唯一方法我已经解决了这个特定的冲突并且它可以继续下一个.

当然有更好的方法,但我不知道.请帮忙吗?这个过程看起来很低效.

git diff mergetool

53
推荐指数
3
解决办法
8万
查看次数

How to use git mergetool's filemerge

The documentation is here: http://www.kernel.org/pub/software/scm/git/docs/git-mergetool.html A handy guide is here: http://ryanflorence.com/git-for-beginners/

However, neither of them explain how to use mergetool's filemerge.

我读到的指南说:" 我点击进入,FileMerge弹出,我处理冲突: "但它没有提到如何 " 处理冲突 ".

当我跑:

git mergetool 
Run Code Online (Sandbox Code Playgroud)

:然后按提示点击返回,并打开filemerge窗口显示所有合并冲突,它只响应命令cmd + D和cmd + shift + D(允许循环冲突).但是,似乎没有提到如何为每次冲突选择左/右/两者.组合框下拉列表似乎没有做任何事情.

已经查看了文档,指南,文件系统菜单,以及系统按下键盘上的键寻找响应=)

git macos filemerge mergetool

51
推荐指数
1
解决办法
2万
查看次数

如何让WinMerge成为我的git mergetool?

我正在尝试将WinMerge与Git集成,因为我之前在Windows 7旗舰版上看到过其他人.

我已经按照以下步骤操作,但是当我执行git mergetool时默认继续显示错误,默认为vimdiff.

在git的根目录中创建了一个名为winmerge.sh的文件:C/Program Files(x86)/ Git/with:WinMergeU是正确的位置.

#!/bin/sh
echo Launching WinMergeU.exe: $1 $2
"C:/Program Files (x86)/WinMerge/WinMergeU.exe" 
git /e /u /dl "Base" /dr "Mine" "$1" "$2"
Run Code Online (Sandbox Code Playgroud)

并使用以下命令.

git config --global diff.tool winmerge
git config --global difftool.winmerge.cmd "winmerge.sh \"$LOCAL\" \"$REMOTE\""
git config --global difftool.prompt false
Run Code Online (Sandbox Code Playgroud)

错误显示为:

git config option merge.tool set to unknown tool: winmerge
Run Code Online (Sandbox Code Playgroud)

git winmerge mergetool difftool

49
推荐指数
9
解决办法
6万
查看次数

为什么我不能在Windows上使用TortoiseMerge作为我的git合并工具?

我正试图执行我的第一次Git合并(令人兴奋!),但无法在Windows 7上识别Git Gui(0.13GITGUI,来自Git 1.7.4.msysgit.0)以识别TortoiseMerge(1.6.11.20210 x64).基于对类似问题的回答,我进行了以下配置更改:

$ git config --global merge.tool tortoisemerge
$ git config --global mergetool.tortoisemerge.cmd 'TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"'
$ git config --global --list
...snip...
merge.tool=tortoisemerge
mergetool.tortoisemerge.cmd=TortoiseMerge.exe -base:"$BASE" -mine:"$LOCAL" -theirs:"$REMOTE" -merged:"$MERGED"
$
Run Code Online (Sandbox Code Playgroud)

不幸的是,当我启动Git Gui并尝试"运行合并工具"时,我收到错误Unsupported merge tool 'tortoisemerge'.

谁能告诉我我做错了什么?这是我的相关部分~/.gitconfig:

[merge]
        tool = tortoisemerge
[mergetool "tortoisemerge"]
        cmd = TortoiseMerge.exe -base:\"$BASE\" -mine:\"$LOCAL\" -theirs:\"$REMOTE\" -merged:\"$MERGED\"
Run Code Online (Sandbox Code Playgroud)

更新

git mergetool从命令行运行时,TortoiseMerge可以正常使用上面的配置.似乎只有Git Gui有问题.: - /

windows git user-interface mergetool tortoisemerge

45
推荐指数
3
解决办法
4万
查看次数

当git revert中止并显示错误消息时,我该怎么办?

好的,所以当我尝试恢复提交(使用Git)时,我有时会收到错误.我所做的就是

git revert <commit hash>

它给了我这样的信息:

error: could not revert <commit hash> <commit message>
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'
Run Code Online (Sandbox Code Playgroud)

这是否意味着我应该使用git mergetool并解决任何冲突?一旦我这样做,我可以添加/ rm然后提交,并恢复完成?

git commit mergetool git-revert

43
推荐指数
2
解决办法
4万
查看次数

有没有办法让Git将文件标记为冲突?

可以提交包含冲突数据的文件.有没有办法再次将这些文件标记为冲突,以便运行git mergetool将生成必要的文件并运行合并工具?

git merge mergetool

41
推荐指数
3
解决办法
9198
查看次数

我怎么能强制mergetool GUI(KDiff3)总是显示?

如何强制始终显示mergetool GUI并禁用任何自动解析?

有时,当有合并过程中发生冲突,我使用合并工具,它只是立即返回,我打后Enter的问题"回车,启动合并解决工具(kdiff3)",并没有GUI显示,冲突似乎得到解决.

我让Git配置为现在使用KDiff3作为mergetool,但是当我codecompare指定mergetool 时也发生了.我知道在KDiff3 中有一个选项"自动保存并退出合并而没有冲突",这理论上可能导致所描述的行为,但我一直禁用/取消选中此选项.

此外,在Git mergetool gitconfig中直接有trustExitCode选项,我将其设置为true,但即使我将其设置为false,也不会显示GUI.

我不知道是谁自动解决了.Mergetool在一些预处理或KDiff3?

我在Windows上运行并安装了Git扩展.

类似于KDiff3的问题,也在这里被问到:Kdiff3不会用mergetool命令打开

git mergetool git-merge kdiff3

29
推荐指数
2
解决办法
1万
查看次数