标签: git-difftool

如何在 git 上执行 3 向视觉差异?

我想对存在于 2 个不同分支中的单个文件进行 3 路比较,即每个分支中的最后一次提交,并考虑共同的祖先。我想使用一个允许进行三向比较的外部工具。我正在考虑使用 git difftool,但据我所知,它只允许比较给定文件的任何两个版本。我可以使用 mergetool,但这迫使我首先运行 git merge,以便设置 BASE、REMOTE 和 LOCAL 变量。我不想运行 git merge。我只想首先进行 3 路比较,以查看两个分支中的文件在考虑到其共同祖先时所做的更改。

是否可以选择使用 difftool 或 mergetool 来完成我需要的操作?谢谢

git git-diff mergetool git-difftool

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

融合错误“无法导入:GTK+;DLL 加载失败”作为外部 git difftool 启动 meld.exe 时

我正在尝试在 Windows 上使用 Meld 作为 Git Difftool 并面临以下问题:

Launch 'meld' [Y/n]? Y
Cannot import: GTK+
DLL load failed: Das angegebene Modul wurde nicht gefunden.
Run Code Online (Sandbox Code Playgroud)

出现以下 Python 错误:

cx_Freeze: Python error in main script

Traceback (most recent call last):
  File "bin/meld", line 205, in check_requirements
    import gi
  File "C:/msys64/MINGW32/lib/python3.7/site-packages/gi/__init__.py", line 42, in <module>
  File "ExtensionLoader_gi__gi.py", line 23, in <module>
  File "ExtensionLoader_gi__gi.py", line 15, in __bootstrap__
  File "C:/msys64/MINGW32/lib/python3.7/imp.py", line 342, in load_dynamic
ImportError: DLL load failed: The specified module could not be …
Run Code Online (Sandbox Code Playgroud)

git meld git-difftool

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

带有远程分支的暂存或未暂存更改之间的 Git 差异

有没有办法使用远程分支在暂存/未暂存更改之间执行 git diff,例如 origin/branch1。git difftool 是否有类似的选项?

或者

有没有办法用 git 远程分支来区分我的本地文件系统(忘记暂存或未暂存)中的更改?我想要的只是在提交之前检查我的更改。一旦我完成了更改并解决了与远程分支的冲突,这真的很有用。

git git-merge git-difftool

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

git diff,使用外部 diff 程序,只需一次

在执行 时git diff,有时我想使用不同的 diff 工具(例如,cmp或者我自己的 bin 目录中的自制 word-diff 程序)。

许多类似 diff 的程序都有一个类似的选项

-D <diffprog>
Run Code Online (Sandbox Code Playgroud)

告诉他们使用其他 diff 或类似 diff 的程序。

我知道 git-difftool 和这个问题,但这并不是我想要的。我非常不想提前配置某些东西,并且我今天想要使用的非标准命令可能不是我明天想要使用的非标准命令。理想情况下,我希望能够从命令行一次性完成此操作。

(是否可以将 difftool 配置为能够使用官方列表中未列出的多个非标准工具?)

git diff如果使用我选择的 diff 工具太麻烦,我也可以使用类似的工具

git cat file | mydiff - file
Run Code Online (Sandbox Code Playgroud)

我知道没有“git cat”这样的命令。但这里的想法是手动将文件的存储库版本与本地版本进行比较,给出 git 命令来简单地发出文件的存储库(或在其他情况下,索引)版本。有这样的命令吗?

最后,如果没有git diff -D diffprog我所询问的假设选项,并且如果没有我假设的“git cat”命令之类的东西,那么我希望它们是错误的吗?

git diff git-difftool

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

Sublime Text 3 + Git包:不会启动difftool(Meld)

我正在使用Sublime Text 3加上Git包来管理我的回购.我将.gitconfig文件设置为使用Meld工具(Meld v3.14.2):

[diff]
    external = meld
    tool = meld
Run Code Online (Sandbox Code Playgroud)

我可以从命令提示符启动$ git difftool,没有任何问题.

我曾经能够通过Git Diff Tool Current FileGit Diff Tool All命令对git包做同样的事情.重新安装Sublime Text 3后,当我尝试执行这两个操作中的任何一个时,Sublime底部的窗口出现,询问:

Viewing (1/1): 'test.py'
Launch 'meld' [Y/n]: 
Run Code Online (Sandbox Code Playgroud)

我不能在这里输入任何文字,而且我之前不需要.如果我尝试Git Diff Current file它会打开一个新选项卡:

Usage: 
  meld                                 Iniciar con una ventana vacía
  meld <archivo|carpeta>               Iniciar una comparación de control de versiones
  meld <archivo> <archivo> [<archivo>] Iniciar una comparación de archivo de 2 ó 3 vías
  meld <carpeta> …
Run Code Online (Sandbox Code Playgroud)

git diff sublimetext3 git-difftool

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

标签 统计

git ×5

git-difftool ×5

diff ×2

git-diff ×1

git-merge ×1

meld ×1

mergetool ×1

sublimetext3 ×1