如何手动检查两次 git 提交之间的差异?

时间:2021-05-05 15:21:10

标签: git kdiff3

如何手动检查同一 git 文件夹中两次提交之间的文件差异。

这里有大量关于如何配置 git 以使用 kdiff3 作为默认合并工具的帖子,但这个问题与手动附加目录有关,以便我可以比较提交之间的差异。

解决以下评论:

假设我有一个文件路径为 /path/to/dir/filename.txt 的文件。 /path/to/dir/ 是一个 git 目录(用 git init 实例化)。

我正在尝试查看 commitid=bacfa3 处的 /path/to/dir/filename.txt 和 commitid=aafaf8 处的 /path/to/dir/filename.txt 的区别。我不想使用 git 的命令行界面 git diff 来执行此操作,而是仅使用 kdiff3 UI 查看这些更改。

解决以下附加答案:

我附上了 an image to the kdiff3 UI。有一个选项可以添加文件和目录。是否可以在特定提交 (bacfa3) 中选择一个文件 /path/to/dir/filename.txt 并在另一个提交 (aafaf8) 中选择同一个文件,并仅使用 kdiff3 UI(无命令行)比较这两个文件界面)。

1 个答案:

答案 0 :(得分:1)

您可以使用 git difftool :

# from /path/to/dir/ :
git difftool bacfa3 aafaf8 -- filename.txt

如果您想比较多个文件,或在目录比较模式下打开差异查看器,请添加 -d 选项:

git difftool -d bacfa3 aafaf8
git difftool -d bacfa3 aafaf8 -- some/dir
# the following will compare the 2 commits, restricting the compared files
# to only the files named on the command line :
git difftool -d bacfa3 aafaf8 -- file1.txt file2.txt path/to/file3.txt

注意:上面命令中的 -- 大部分是可选的,它是标准的表达方式“后面的不是分支名称,或标签名称,或提交引用或命令行选项(如果文件以 - 开头,例如),它只是路径”。
当没有歧义时,git 知道用 git difftool bacfa3 Readme.md 寻找什么。

获取 kdiff3 作为标准查看器:Configuring kdiff3 with git


git difftool 的基本用法是:git diff(*) 理解的任何选项和参数集也将被 git difftool 理解 git difftool -d

(*) 好吧,可能会有一两个例外,例如 --word-diff--histogram,因为 git 不再控制差异查看器的行为方式。


[编辑] 回答“我可以仅从 kdiff3 GUI 执行此操作吗?”点:

我认为您不能单独从 kdiff3 中(除非您在菜单中的某处看到“VCS”条目?),查看 GUI 前端到 git :

官方 git 站点上有一个很好的 GUI 工具列表:

我对 Git extensions 有很好的体验(如果你运行的是 Windows),gitk 是用 git 开发的非常密切,其他工具也很出名,比如 Gitkraken、Sourcetree ...< /p>

从这些工具中,您将有一个 GUI 来选择要比较的提交和文件,并且它们都有一个“在 [图形差异查看器] 中打开...”操作。

相关问题