相关疑难解决方法(0)

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

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

git diff diffmerge difftool git-difftool

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

为什么"git difftool"不能直接打开工具?

我这样配置git:

git config --global diff.tool meld
Run Code Online (Sandbox Code Playgroud)

当我跑:

git difftool
Run Code Online (Sandbox Code Playgroud)

我收到以下消息:

Viewing: 'hello.txt'
Hit return to launch 'meld': 
Run Code Online (Sandbox Code Playgroud)

然后,如果我按Enter,meld将启动.

如何禁用此消息,以便meld在键入后立即启动git difftool

git diff difftool

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

当我做"git diff"时,如何获得并排差异?

当我输入"git diff"时,我想看到一个并排的差异,就像"diff -y"一样,或者喜欢在像"kdiff3"这样的交互式差异工具中显示差异.如何才能做到这一点?

git git-diff code-visualization

140
推荐指数
11
解决办法
8万
查看次数

如何将bash脚本直接嵌入git别名中

我可以嵌入以下bash shell代码:

for name in $(git diff --name-only $1); do git difftool $1 $name & done
Run Code Online (Sandbox Code Playgroud)

直接进入git别名的创建:

git config --global alias.diffall ***my-bash-code-here***
Run Code Online (Sandbox Code Playgroud)

这是我之前在SO 上的问题/答案引出的,我把代码放到.sh文件中,然后别名到文件:

git config --global alias.diffall '!sh diffall.sh'
Run Code Online (Sandbox Code Playgroud)

但是,在永无止境的简单追求中,必须有一种跳过文件并将代码直接插入别名的方法吗?我无法弄清楚格式......

git bash shell alias

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

与"git mergetool"合并

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

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

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

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

git diff mergetool

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

git difftool给目录比较?

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

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

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

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

git diff beyondcompare

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

git-difftool:使用meld进行完整文件树比较?

有没有一种简单的方法可以将旧git提交的文件树与工作文件树进行比较?

git-difftool做了非常相似的事情,但我不希望它实际上做任何差异; 重点是它调用的工具可以为它提供更好的界面.

git meld difftool

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

git,vimdiff和dirdiff

我正在尝试使用vimdiff + dirdiff.vim在Vim中使用Git版本化多个文件.

对于Mercurial,可以使用mercurial extdiff扩展.

我在网上Vim的Git的差异整合上发现的唯一的办法就是在烧毛文件用Vimdiff,在描述这个职位.

有谁知道如何使用vimdiff + dirdiff + git?

git vim vimdiff

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

如何将Araxis设置为MSYS git的差异/合并工具?

我正在尝试使用Araxis Merge作为MSYSGit的差异/合并工具.

我在网上找到了一些资源:

  • Araxis网站上,他们提到了一种"简单"的方式,但它暗示了一个不属于我的发行版的可执行文件(araxisgitdiff.exe和araxisgitmerge.exe).
  • 我也在gitguru中找到了一些信息,但实际的信息是:Araxis充其量只是稀疏,我无法做出任何改变.
  • 最后,有一些旧的stackoverflow帖子的信息,但建议的方法不适合我.这个特定的信息面向OS X.我尽可能地"翻译"到Windows,但没有成功:

我建立 /bin/git-diff-driver.sh

#!/bin/sh

"/c/Program Files/Araxis/Araxis Merge/compare.exe" -title1:"$1 (repo version)" -title2:"$1 " -max "$2" "$5"
Run Code Online (Sandbox Code Playgroud)

并编辑 gitconfig

[merge]
    tool = araxismerge
[mergetool "araxismerge"]
    cmd = "/c/Program Files/Araxis/Araxis Merge/compare.exe" -3 -merge -wait $LOCAL $BASE $REMOTE $MERGED
[diff]
    external = "/bin/git-diff-driver.sh"
Run Code Online (Sandbox Code Playgroud)

我得到的唯一结果是:

$ git diff HEAD ^ HEAD
外部差异死亡,停在PowerEditor/src/Notepad_plus.cpp.


编辑:

我也尝试过使用"c:/Program Files/Araxis/Araxis Merge/compare.exe"其中一个答案所建议的exe ,并得到相同的结果.


编辑:

我发现如果你使用TortoiseGit它可以轻松设置,但它似乎自己处理diff并且没有来自TortoiseGit的设置给出任何关于如何在从命令行调用diff时将Araxis设置为合并工具的指示.


编辑:

所以,问题是:是否有人成功使用Araxis Merge来区分和合并MSYSGit,如果是这样,你怎么样?

windows git diff msysgit araxis

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

在GUI中探索git-diff输出?

是否有允许在GUI中探索输出git-diff命令的程序?

我正在寻找的是类似于SmartGit如何显示其对工作副本和HEAD之间差异的看法.显示与HEAD不同的每个文件,并显示焦点文件的差异.

我不确定是否可以使SmartGit显示"git diff"命令的输出.

替代文字

git git-diff

10
推荐指数
4
解决办法
9468
查看次数

Git格式补丁查看器?

有人正在向我发送由"git format-patch"生成的补丁.

是否有一个gui(在Linux上)可以打开这些.patch文件?

我尝试了很多差异,但他们所做的就是比较两个现有的文件/文件夹.没有可以显示补丁,除了kompare,它吐出"差异格式错误.有些行无法解析,不会在差异视图中显示." 每次.

git

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

git工具可与bzr qlog相媲美

出于代码审查的目的,我非常习惯使用该bzr qlog命令直观地查看两次提交之间的更改.我现在开始使用git,我正在寻找相应的东西.我想要的三个主要功能是:

  • 两个修订版的视觉选择(例如从标准修订版查看器中显示提交名称,消息,日期,分支等)
  • 观看视觉上并排改变
  • 查看一次更改的所有文件,而不是一次查看一个

到目前为止我发现的最接近的git组合是注册meld为git diff工具,然后git cola用来比较修订版.不幸的是,这里的修订查看器是有限的,我一次只能比较一个文件.

我的后备解决方案当然是使用bzr-git然后简单地运行bzr qlog.我已经尝试了这个并且似乎工作正常,我只是担心当我开始在存储库中使用git特定功能时它会开始让我失望.

那么,是否有一个git工具或一系列工具,我可以毫不费力地获得相同的基本结果?

注意:我对SmartGit等商业解决方案不感兴趣

git bazaar

7
推荐指数
1
解决办法
346
查看次数

git diff - 外部查看器 - 获取所有差异结果

配置外部差异时,每个文件显示结果,即查看当前运行差异查看器所需的下一个文件的差异.

有没有办法让git并行生成所有差异查看器进程?

如果我只是从外部diff脚本中生成进程,显然git会删除它用于比较的临时文件.

所以

#!/usr/bin/python
import subprocess
import sys
p = subprocess.Popen(('/usr/bin/meld', sys.argv[2], sys.argv[5]))
#p.wait()
Run Code Online (Sandbox Code Playgroud)

没用,显示'无法读取'/tmp/.diff_VlLwKF'

但是,如果我取消注释

#p.wait()
Run Code Online (Sandbox Code Playgroud)

一切正常,但同样,它是顺序产卵,而不是平行.

谢谢

git shell diff

4
推荐指数
1
解决办法
2528
查看次数