如何解决如何手动检查两次 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(无命令行)比较这两个文件界面)。
解决方法
您可以使用 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 ...
从这些工具中,您将有一个 GUI 来选择要比较的提交和文件,并且它们都有一个“在 [图形差异查看器] 中打开...”操作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。