标签: difftool

查看“ difftool”中“ git log -p”的更改

我正在使用来获取分支更改以供审核git log -p master..newbranch,但这仅给了我diff文件。如何使用外部工具(如Meld)查看此差异?我想看看仅在此特定分支中有什么更改(从分支开始到技巧)。

git workflow meld difftool

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

git difftool:如何衡量进度,即差异和差异的文件数?

我知道我可以使用git difftool--dir-diff选项来一次性比较所有文件。

但是使用difftoolwith prompt 有它的用处(对于相当少的文件进行比较),特别是从 git 1.7.8 开始,你可以跳过一个文件

但是,该提示不会显示差异队列中有多少文件或已经差异了多少。
您将如何在difftool提示中显示该信息?

git prompt difftool

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

Git difftool 子模块

我正在考虑以一种并不真正适合的方式使用子模块,但我的目标是为开发人员简化一些事情。我有一个项目基本上仅由子模块组成 - 其中 4 个。重要的是它们彼此独立,否则我只会制作一个大的回购协议。从父存储库中,我可以通过执行 立即查看所有子模块的差异git diff --submodule=diff

但我真正想要的是相当于git difftool -d但同时适用于所有子模块。理论上 difftool 应该与该--submodule=diff标志一起使用(因为git difftool具有与 diff 相同的选项),但事实并非如此。有想法吗?

git vimdiff beyondcompare difftool

7
推荐指数
0
解决办法
189
查看次数

默认的 git diff 工具(和合并工具)是什么?

默认的 git diff 工具(和合并工具)是什么?
我在哪里(以及如何)可以找到它?

我从未明确为 git difftool(也没有 mergetool)设置任何配置,
因此git config --get difftool没有显示任何内容。

git 文档说(https://git-scm.com/docs/git-difftool):

diff.tool如果未设置配置变量,git difftool将选择合适的默认值。

我怎样才能知道它选择了哪一个?“合适
” 的算法是如何工作的?


让我分享一下我试图通过 git 找出当前选择的 diff 工具的原因:
我在执行时遇到了一些奇怪的 diff 结果git diff(我怀疑 BOM 处理问题)。
我想询问供应商(例如,p4merge),
但不确定是否是p4mergevimdiff或其他什么。

我预计可能会有类似的命令git difftool --current

git default git-config difftool

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

Git:配置difftool和mergetool的模式

在Mercurial中,可以为外部差异和合并工具定义模式(以便仅为匹配指定模式的文件调用它们):

[diff-patterns]
**.ext = difftool
[merge-patterns]
**.ext = mergetool
Run Code Online (Sandbox Code Playgroud)

如何在Git中定义这样的模式?

git-config(1)中的[mergetool]部分未提及任何模式,掩码或任何类似的模式.

编辑:

这是我的.git/config的相关部分:

[diff]
    tool = difftool
[difftool "difftool"]
    cmd = difftool.git.sh "$LOCAL" "$REMOTE" "$BASE"

[merge]
    tool = mergetool
[mergetool "mergetool"]
    cmd = mergetool.git.sh "$LOCAL" "$REMOTE" "$BASE" "$MERGED"
Run Code Online (Sandbox Code Playgroud)

现在它适用于所有文件.

我希望为名称以.结尾的文件调用difftool和mergetool.ext

编辑:

我添加了一个文件.git/info/attributes,其中包含以下内容:

*.ext   diff=difftool
*.ext   merge=mergetool
Run Code Online (Sandbox Code Playgroud)

我还补充道

[diff "difftool"]
    name = my custom diff driver
    driver = difftool.git.sh %A %B %O
[merge "mergetool"]
    name = my custom merge driver
    driver = mergetool.git.sh %A %B %O …
Run Code Online (Sandbox Code Playgroud)

git mercurial mergetool difftool

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

如何跳转到GIT difftool中的下一个/ prev diff?

我使用git difftool来比较VIM中的2个大文件.我只想导航到不同的行.

如何使用GIT difftool在不同的行之间快速导航?

我正在寻找类似winmerge快捷键的东西:
Alt + down - 下一步更改
Alt + Up - Prev Change

git vim difftool

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

使用meld作为git的difftool,但在一个窗口中列出所有文件

我想使用meld作为git的diff工具.

如果我这样配置.gitconfig:

[difftool]
    prompt = false
[diff]
    tool = meld
Run Code Online (Sandbox Code Playgroud)

并运行命令:$ git difftool
然后git为每个有更改的文件打开一个meld窗口.

但我希望在meld列表框中显示一个包含所有文件的窗口.我已经阅读了一些关于-d--dir-diff选择的内容.
当我尝试:$ git difftool -d
然后打开一个窗口,每个meld部分中有一个目录树,但是包含空目录.
我无法从这里打开我的文件.

在此输入图像描述

有关信息:

$ git --version
git version 1.9.1
$ meld --version
meld 1.8.4
$ lsb_release -d
Description:    Ubuntu 14.04.2 LTS
Run Code Online (Sandbox Code Playgroud)

git svn也在使用,但我不认为这与我的问题有关; 因为据我所知git-svn,我的目录是一个简单的git目录.

相关问题:
查看分支与融合的差异?

git meld git-config difftool git-difftool

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

Git difftool问题:无法创建临时文件

我正在使用配置为difftool的Kaleidoscope的git.它已经好几个月了.它也在一两天前工作.今天,当我尝试做一个"git difftool"时,突然,git报道

fatal: unable to create temp-file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

在谷歌上搜索建议这可能是本地git仓库中的目录权限问题.但是,即使在git repo上递归chown后,情况也没有改善.

Git的-difftool文件没有提到在那里它可能会试图创建此临时文件.有没有人对如何找到它有任何想法?

git difftool

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

OS X上的opendiff(FileMerge):默认选择left

我是否可以将此工具配置为默认左侧而不是右侧的每个不同块的选择?

现在,解决方法是交换侧面,但这有点令人困惑.

macos filemerge difftool opendiff

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

git difftool没有启动Beyond Compare

嗨伙计我正在努力与git制作运行Beyond Compare作为我的difftool.

我正在使用"Git For Windows",Windows 7 32位和Beyond Compare 4

$ git --version
git version 1.9.5.msysgit.1
$ git config --list

[diff]
tool = bc3

[difftool "bc3"]
path = c:/Program Files/Beyond Compare 4/bcomp.exe

[merge]
tool = bc3

[mergetool "bc3"]
path = c:/Program Files/Beyond Compare 4/bcomp.exe
Run Code Online (Sandbox Code Playgroud)

现在我已经在这里和那里阅读了其他问题,并遵循以下说明:

  • 用其他名称改变'bc3',即'abc3'或'beyondcompare'
  • 命令:git difftool --tool = bc3 MyFile.java
  • 将.gitconfig中的"bc3"路径更改为"c:\ Program Files\Beyond Compare 4\bcomp.exe"
  • 为路径添加了$ LOCAL $ REMOTE

我已经意识到它总是启动默认的diff控制台查看器/工具(vimdiff,如果我没错),尽管将上面提到的参数'--tool = bc3'或'--tool = anyname'传递给' git difftool'命令.

最后,它只适用于'git mergetool',在这种情况下,无法比较启动,你可以看到参数是相同的.

如果我忘记了某些内容或需要更多细节,请告诉我们谢谢

"当我输入命令git difftool"

图片

git beyondcompare difftool

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