相关疑难解决方法(0)

Git Diff与超越比较

我成功地让git启动Beyond Compare 3作为diff工具,但是当我做差异时,我正在比较的文件没有被加载.只加载了最新版本的文件而没有其他内容,因此Beyond Compare右侧窗格中没有任何内容.

我正在使用带有Beyond Compare 3的Cygwin运行git 1.6.3.1.我已经设置了超出比较,因为他们在他们的网站的支持部分建议用这样的脚本:

#!/bin/sh  
# diff is called by git with 7 parameters:  
# path old-file old-hex old-mode new-file new-hex new-mode  
"path_to_bc3_executable" "$2" "$5" | cat
Run Code Online (Sandbox Code Playgroud)

有没有其他人遇到过这个问题并知道解决方案?

编辑:
我已经按照VonC的建议,但我仍然遇到与以前完全相同的问题.我是Git的新手,所以也许我没有正确使用差异.

例如,我试图用这样的命令在文件上看到diff:
git diff main.css

然后将打开Beyond Compare,只显示左窗格中的当前main.css,右窗格中没有任何内容.我希望在左窗格中看到我当前的main.css与HEAD相比,基本上我最后提交的内容.

我的git-diff-wrapper.sh看起来像这样:

#!/bin/sh  
# diff is called by git with 7 parameters:  
# path old-file old-hex old-mode new-file new-hex new-mode  
"c:/Program Files/Beyond Compare 3/BCompare.exe" "$2" "$5" | cat
Run Code Online (Sandbox Code Playgroud)

我的git配置对于Diff看起来像这样:

[diff]  
external = c:/cygwin/bin/git-diff-wrapper.sh
Run Code Online (Sandbox Code Playgroud)

git beyondcompare

106
推荐指数
11
解决办法
9万
查看次数

在Git中使用Winmerge来编写diff

有没有办法在git中使用Winmerge来做Diffs?

git diff winmerge msysgit

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

如何使用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克隆到另一个现有的Git回购

如果我将一个repo克隆到现有的git repo中,我会遇到任何问题吗?

为了简化起见,我正在开发一个应该可用于我所有项目的库"lib /".这是一个单独的git repo.我想将这个lib /导入到我的所有项目中,并且只在一个地方更新它,从不接触任何项目,只需使用它.

我假设这没关系,只是想知道是否有什么我应该注意的.谢谢!

git

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

如何在OS X中将FileMerge作为带有git的diff工具进行管道传输?

我是OS X上的新手,我正在通过命令行使用它.我来自Tortoise SVN和Beyond Compare on Windows的世界.

我希望能够将差异发送到FileMerge.

我只需使用以下命令即可使用TextMate执行此操作:

git diff | mate
Run Code Online (Sandbox Code Playgroud)

但我不知道如何设置,所以我可以使用FileMerge?

git macos command-line filemerge

36
推荐指数
3
解决办法
2万
查看次数

git difftool给目录比较?

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

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

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

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

git diff beyondcompare

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

用于Linux的Visual SVN diff和比较工具

哪个是适用于Linux的最佳Visual SVN Diff显示器.

BeyondCompare和VisualSVN 1.5在Windows上运行良好.什么是Linux的等效工具?(特别是Ubuntu).

我知道命令行差异工作; 但我希望突出显示多列语法和差异.

如果该工具也支持Git和Hg,那就更好了.

linux svn git diff

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

如何使用msysgit/gitk设置DiffMerge?

我刚刚开始使用Git而且我可能错过了一些明显的东西,但是这里有:

  • 我在Windows XP上使用msysgit 1.6.2.2
  • 在安装时,我选择了选项1"仅使用Git Bash"

我正在尝试整理一个包装脚本,我可以使用它来用DiffMerge替换内置的git diff.基于SO 上的这个线程,我创建了以下批处理文件:

@echo off
REM ---- Switch forward slashes to back slashes ----
set oldW=%2
set oldW=%oldW:/=\%
set newW=%5
set newW=%newW:/=\%

REM ---- Launch DiffMerge ----
"C:/Programs/SourceGear/DiffMerge/DiffMerge.exe" /title1="Old Version" %oldW% /title2="New Version" %newW%
Run Code Online (Sandbox Code Playgroud)

我将bat文件放在%GIT_INSTALL%/ cmd下并编辑了我的.gitconfig文件,如下所示:

[diff]
external = C:/Programs/git/cmd/git-diff-wrapper.bat
Run Code Online (Sandbox Code Playgroud)

如果我启动Git Bash并执行git diff HEAD HEAD~ - myfile

我收到一条消息File (\dev\null) not found- 鉴于我在Windows上并不奇怪.

按下,我启动了gitk,在Edit> Preferences下,我选择了相同的包装脚本.尝试特定文件的"外部差异"选项会产生神秘的错误消息Unknown Option "

很明显,我不知道我在做什么,所以任何帮助都会非常感激.

git windows-xp diffmerge msysgit

21
推荐指数
3
解决办法
2万
查看次数

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
查看次数