我想对存在于 2 个不同分支中的单个文件进行 3 路比较,即每个分支中的最后一次提交,并考虑共同的祖先。我想使用一个允许进行三向比较的外部工具。我正在考虑使用 git difftool,但据我所知,它只允许比较给定文件的任何两个版本。我可以使用 mergetool,但这迫使我首先运行 git merge,以便设置 BASE、REMOTE 和 LOCAL 变量。我不想运行 git merge。我只想首先进行 3 路比较,以查看两个分支中的文件在考虑到其共同祖先时所做的更改。
是否可以选择使用 difftool 或 mergetool 来完成我需要的操作?谢谢
我正在尝试在 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 diff,例如 origin/branch1。git difftool 是否有类似的选项?
或者
有没有办法用 git 远程分支来区分我的本地文件系统(忘记暂存或未暂存)中的更改?我想要的只是在提交之前检查我的更改。一旦我完成了更改并解决了与远程分支的冲突,这真的很有用。
在执行 时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”命令之类的东西,那么我希望它们是错误的吗?
我正在使用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 File和Git 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)