相关疑难解决方法(0)

如何使用我喜欢的diff工具/查看器查看'git diff'输出?

当我输入时git diff,我想用我选择的视觉差异工具(Windows上的SourceGear"diffmerge")查看输出.如何配置git来执行此操作?

git diff diffmerge difftool git-difftool

735
推荐指数
17
解决办法
42万
查看次数

使用.gitconfig配置diff工具

如何配置Git使用不同的工具与.gitconfig文件进行区分?

我在.gitconfig中有这个:

[diff]
    tool = git-chdiff #also tried /bin/git-chdiff
Run Code Online (Sandbox Code Playgroud)

这是行不通的; 它只是打开常规命令行diff.当我做

export GIT_EXTERNAL_DIFF=git-chdiff
Run Code Online (Sandbox Code Playgroud)

然后git diff将打开外部差异工具(所以我知道外部差异工具脚本工作正常).我的.gitconfig配置对于diff工具有什么问题吗?

git

144
推荐指数
7
解决办法
19万
查看次数

如何使用Winmerge与Git扩展?

我正在使用Git Extensions,它预先安装并设置KDiff作为解决合并冲突的diff工具.我非常喜欢Winmerge,并希望用Winmerge取代KDiff.

在Git Extensions设置中,有一些设置可以更改Mergetool,但我似乎无法弄清楚我应该使用什么语法以及为什么.似乎有4个变量:$ BASE,$ LOCAL,$ REMOTE,$ MERGED.看来我应该将这些传递给WinMergeU.exe,但是哪个命令行参数?

我曾尝试过几次搜索,但实际上似乎没有答案.

git settings winmerge git-extensions

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

如何让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万
查看次数

git difftool给目录比较?

是否可以通过git difftool命令打开已更改文件与登台/已检查文件之间的目录比较?

理想情况下,如果2个文件已更改,则它们将是显示的唯一2个,但在目录比较中.

我已经阅读了关于获取git以并行提供所有文件差异的帖子,因此像BeyondCompare这样的工具在选项卡中有所有差异,但我对此并不满意!

可以将已更改文件的副本从登台/签入文件中提取到临时文件夹中,然后将其打开.这是唯一的选择吗?

git diff beyondcompare

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

Git在提交之前比较文件

在git中是否有一个功能,我可以在提交更改之前将我的本地文件与git源代码控件进行比较?

git github github-for-windows

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

Msys Git Merge工具命令选项问题

我在Windows机器上使用msys Git进行源代码控制,我正在试图弄清楚如何让我的合并工具WinMerge与Git一起工作.

我已经按照我的能力尽可能地遵循了这个博客上的说明,因为它是我发现的最接近我正在尝试做的事情.基本上我做的是:

修改我的.gitconfig文件以包含以下内容:

[merge]
    tool = winmerge

[mergetool "winmerge"]
    cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" "$PWD/$LOCAL" "$PWD/$REMOTE" "$PWD/$MERGED"  
        trustExitCode = false  
    keepBackup = false

这几乎正​​常.当我尝试从Git运行合并工具时,WinMerge给我一个错误,说它无法找到文件的路径,这是完全合理的,因为它正在寻找的路径是:

C:\MY\WORKING\DIRECTORY\-e
C:\MY\WORKING\DIRECTORY\-ub

看起来Git正在将选项传递给合并工具,而不是本地和远程文件名,如果一切正常,我希望传递这些文件名.

我在网上搜索了Git的合并文档,但我似乎找不到任何与我想要做的事情有关的事情.我的猜测是解决方案将是以下之一:

  1. $LOCAL&$REMOTE变量更改为正确的值,假设$LOCAL&$REMOTE不正确.
  2. 编写一个.bat脚本来调用WinMergeU,并处理Git在我的.bat脚本逻辑中发送给合并工具的参数.

git version-control merge batch-file

20
推荐指数
3
解决办法
9396
查看次数

Git分支的目录比较

我最喜欢的svn工作流程之一是使用Beyond Compare的文件夹比较功能来查看两个分支或分支和主干之间的净差异.有没有办法在git中执行此操作而无需手动创建同一存储库的多个克隆?

当我问这个问题时,我发现我可以写一个脚本,将当前的repo克隆到一个临时目录,检出所需的分支,然后用两个目录作为参数调用BCompare.exe.使用调用文件夹比较视图

BCompare.exe path/to/folder1 path/to/folder2
Run Code Online (Sandbox Code Playgroud)

这听起来合理吗?在完成Beyond Compare之后,我能否删除额外的克隆?

git beyondcompare beyondcompare3

14
推荐指数
2
解决办法
5103
查看次数

Git&WinMerge(msysgit)

我已经阅读了关于这个主题的大量问答,并遵循了该信的所有指示.但是我仍然头疼,试图将Git设置为使用WinMerge进行差异和合并.

我使用Git终端采取了以下步骤:

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)

我还在我的PATH变量中包含的目录中设置了一个脚本:

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

当我执行

git mergetool
Run Code Online (Sandbox Code Playgroud)

在Git终端中,我看到:

Merging:
first.txt

Normal merge conflict for 'first.txt':
  {local}: modified
  {remote}: modified
Launching WinMergeU.exe:
Run Code Online (Sandbox Code Playgroud)

因此在我看来,$LOCAL$REMOTE变量并没有将任何内容传递给winmerge.sh脚本.我在这做错了什么?我必须在配置部分中假设它.

git winmerge msysgit mergetool

6
推荐指数
1
解决办法
6061
查看次数

是否可以使用winmerge从cygwin查看git diffs?

我喜欢在cygwin上使用git,但我唯一的缺点是当我想要时git difftool我不能使用任何有用的东西.git diff对我来说大部分时间都没问题,但有时候我想用winmerge来查看这些差异git difftool是否有某种方法来设置它?

windows git cygwin windows-xp winmerge

5
推荐指数
1
解决办法
3278
查看次数