标签: difftool

从git-gui调用外部difftool?

我已经配置了p4merge,以便从命令行如果执行“ git difftool ...”,则可以正确打开外部diff工具。

我想从“ git gui”而不是命令行打开外部difftool。这可能吗?

看来git-gui允许一个添加工具。但是我不清楚如何使它工作。有指针吗?

git difftool git-gui

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

git difftool dir-diff符号链接问题

我正在Windows 8.1下的一个更大的项目上运行msysgit 1.8.3.

当我发出时git difftool --dir-diff,我对左窗格中的源文件执行的任何更改都将保留回工作目录.这很好,是理想的行为.

但是,当我比较树木时,例如:

git difftool --dir-diff --cached
git difftool --dir-diff stash@{0}
git difftool --dir-diff HEAD^
Run Code Online (Sandbox Code Playgroud)

更改未保存.

奇怪的是,当我测试一个较小的项目时,我没有这个问题.在比较大型项目时,似乎存在创建符号链接时的问题.是否有一些我可以用来强制创建符号链接的标志?或者,有没有办法调试为什么git没有创建符号链接?

谢谢.

(*)对于那些熟悉它的人,我正在寻找git-meld的行为,这曾经是完美的.

编辑: 我在另一台PC上的另一个不同项目中发现了这种不一致.所以现在我有两个这样的案例.任何帮助,将不胜感激.

git difftool

5
推荐指数
0
解决办法
204
查看次数

git difftool运行git diff

我显然在这里忽略了一些非常简单的内容,但是我没有看到它。命令

webstorm diff ~/test.txt ~/test2.txt
Run Code Online (Sandbox Code Playgroud)

运行JetBrains图形化差异工具。我正在运行git 1.8.3.2并有一个git .config包括

[diff]
    tool = webstorm
[difftool "webstorm"]
    cmd = webstorm diff $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE")
[difftool]
    prompt = false
Run Code Online (Sandbox Code Playgroud)

当我运行命令时

git difftool ~/test.txt ~/test2.txt
Run Code Online (Sandbox Code Playgroud)

我在终端窗口中得到以下内容:

diff --git a/home/mark/test.txt b/home/mark/test2.txt
index 7379ce2..6ce16f1 100644
--- a/home/mark/test.txt
+++ b/home/mark/test2.txt
@@ -1,2 +1,2 @@
-blah
+bluergh
Run Code Online (Sandbox Code Playgroud)

我在做什么错/不做什么?

git difftool

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

/ usr/lib/git-core/git-difftool第266行:文件存在

我尝试与整个目录差异git-difftool,我得到以下错误:

$ git difftool -d
/usr/lib/git-core/git-difftool line 266: File exists
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用该--no-symlinks选项,但这意味着我无法编辑diff工具(meld)中的文件.

$ git --version
git version 1.9.1
Run Code Online (Sandbox Code Playgroud)

这是负责该错误的perl脚本的一部分:

256    # Changes in the working tree need special treatment since they are
257    # not part of the index. Remove any trailing slash from $workdir
258    # before starting to avoid double slashes in symlink targets.
259    $workdir =~ s|/$||;
260    for my $file (@working_tree) {
261       my $dir = dirname($file);
262       unless (-d "$rdir/$dir") {
263 …
Run Code Online (Sandbox Code Playgroud)

git difftool

5
推荐指数
0
解决办法
660
查看次数

Git difftool kdiff3无法编辑文件

我在.gitconfig中有kdiff3的以下difftool配置,

[difftool "kdiff3"]
    external = '"C:/Program Files/KDiff3/kdiff3.exe" "$LOCAL" "$REMOTE" --output "$MERGED"'
    trustExitCode = false
[difftool]
    prompt = false
[diff]
Run Code Online (Sandbox Code Playgroud)

我正在使用以下命令来查看差异文件,

git difftool config/application.config.php -t kdiff3
Run Code Online (Sandbox Code Playgroud)

但是,当kdiff3打开时,我无法编辑该文件。如何在difftool中的kdiff3中编辑文件?

git difftool kdiff3

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

我可以在Visual Studio中使用WinMerge作为我的合并/差异工具吗?

我需要比较我的项目中的两个文件,这是用C#编写的.我可以将WinMerge(或任何其他差异工具)与Visual Studio集成,并从内部轻松使用它吗?

winmerge visual-studio-2010 difftool tfvc

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

如何获取winmerge以显示git中新文件的差异?

我可以通过winmerge向我展示修改后的文件的差异。但是对于新文件,winmerge会显示一个对话框,提示“左路径无效!”。我希望它将左窗格显示为空白,而右窗格显示文件的内容。

$ git difftool head^ newfile.txt
Run Code Online (Sandbox Code Playgroud)

winmerge对话框:

在此处输入图片说明

我在git版本2.8.2.windows.1上

这是我的difftool的git配置:

[diff]
    tool = winmerge
[difftool]
    prompt = false
[difftool "winmerge"]
    cmd = \"C:\\Program Files (x86)\\WinMerge\\WinMergeU.exe\" -e -ub -wl \"$LOCAL\" \"$REMOTE\"
Run Code Online (Sandbox Code Playgroud)

我想念什么?

git winmerge difftool

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

Git difftool有时不打开

我有 2 个文件夹(使用不同的代码),并初始化了 git。但是当我这样做时

git difftool -t meld 
Run Code Online (Sandbox Code Playgroud)

一个 repo 工作正常,并询问我是否要在 meld 中打开文件进行比较。另一个只是在控制台中输出所有内容而没有执行meld。

.git/config 文件也是相同的(除了 url)

有谁知道这是为什么?

git meld difftool

3
推荐指数
1
解决办法
3133
查看次数

我可以在 VS Code difftool 模式下突出显示字符吗?

当 VS Code 用作比较工具时,例如使用git difftool,它会以红色和绿色显示更改的行。有没有办法突出显示更改的字符(除了线条之外或代替线条)以使它们更加突出?

difftool visual-studio-code

3
推荐指数
1
解决办法
1080
查看次数

无法理解Git的difftool配置是如何设置的

我需要在我的旧Git中使用类似的设置,以便能够使用difftool.设置不完全相同,因为我偶然删除了我的旧.gitconfig.

 [merge]
     tool=opendiff

 [mergetool]
     tool=opendiff

 [difftool]
     difftool=opendiff
Run Code Online (Sandbox Code Playgroud)

我在家里有一个空的.gitconfig.我仍然可以使用opendiff -tool.这是一个惊喜,因为它应该是不可能的.

Git的difftool设置如何在内部工作?

git macos difftool

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

git difftool --dir-diff:如何复制更改的文件

我以前使用git-diffall,但是作者说这个命令已经过时git difftool --dir-diff.

该命令git difftool --dir-diff无法复制我在difftool中更改的代码,就像git-diffall的--copy-back选项那样.

我在网上搜索,发现这个,看起来很复杂......:

[PATCH] difftool --dir-diff:复制与工作树匹配的所有文件

当你使用difftool并对代码做了一些改变时你会怎么做?

谢谢

git difftool

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

如何在 git 中使用不同的合并和差异工具?

我更喜欢meld用作差异工具。但是它没有快速解决所有简单冲突的选项,所以在合并的情况下我想使用 kdiff3

我已经设置merge.tool为 kdiff3 并diff.guitool融合但git difftool仍然总是运行 kdiff3

[merge]
        tool = kdiff3
        conflictstyle = diff3

[diff]
        guitool = meld
        renames = copies
        mnemonicPrefix = true

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

如何git difftool运行meld

git diff git-diff mergetool difftool

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

如何在单个Bcomp3窗口中打开多个文件的git difftool?

git difftool --tool=bc3从Git-Bash 使用时,我为每个文件都有一个BC3窗口.但是要看到下一个窗口我必须关闭前一个窗口.

我想在单个BC3窗口中同时看到所有差异文件作为选项卡.

git beyondcompare difftool

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