git diff选项的完整列表是什么?

3

在另一个问题中,我发现提到了这个命令:

git diff --merge

然而,查看diff的手册页或--help文档后,我找不到--merge选项的任何解释。
有些命令可以使用其他子命令的选项,比如git show--help页面中说明:
该命令接受适用于git diff-tree命令的选项,以控制如何显示提交引入的更改。 git diff是否使用其他git命令(如git show)的选项?如果是,它是否在文档中说明?还是这是一个疏忽?
2个回答

2

git diff 使用与 git rev-list 相同的所有选项(实际上,许多 git 命令都是这样做的,要么直接运行 git rev-list - 许多是 shell 脚本 - 要么从其源代码中调用它)。所以这里的 --merge 是来自于 git-rev-list 的选项之一:

   --merge
       After a failed merge, show refs that touch files having a conflict
       and don't exist on all heads to merge.

很好!你知道这是在哪里说明的,还是普遍常识? - undefined
2
我没有找到适当的文件记录。(我觉得Git的文档总体上还有待改进。:-) ) 我尝试运行git diff --merge,但是收到了一个错误信息(不在合并中)然后追踪源代码确认了一下。 - undefined

0

git diff使用其他git命令的选项,就像git show一样吗?
如果是这样的话,文档中有说明吗?还是这是一个疏忽?

Git 2.43(2023年第四季度)对于git diffgit show进行了澄清:

请参见commit 4fbe83f(2023年9月20日)由Han Young(eseedo提交。
(由Junio C Hamano -- gitster --commit e076f3a中合并,2023年9月29日)

show doc:将用户重定向到git log手册,而不是git diff-tree签名:Han Young 虽然`git show`(man)命令接受适用于`git diff-tree`(man)命令的选项,但在`git show`的上下文中,有些选项是没有意义的。 `git show`命令的选项是通过`git log`的机制来处理的。 `git log`(man)手册页比`git diff-tree`更适合查找`git show`手册页中没有的选项。
所以现在git show --helpman page已经改变了:

一些'git log'命令理解的选项可以用来控制显示提交引入的更改的方式。

它不再引用OP中的git diff-tree了。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接