在HEAD(最近一次提交)中,我有一个名为foo的文件。在我当前的工作树中,我将其重命名为bar,并对其进行编辑。

我想git diff foo在头,和酒吧在我当前的工作树。


显式指定路径:

git diff头:full/path/ foo /酒吧

查看git-diff文档中的——find-rename选项。

: twaggs信用卡。

Git diff <path> <path>将比较两个工作树文件,只要其中至少有一个不在Git repo中,或者该命令是从Git repo外部运行的。如果你想确保git知道你只是在比较工作树中的文件(也就是说,比较你目录中的文件,而不是添加或提交给git的文件),请使用git——no-index <path> <path>


如果你正在使用tortoise git,你可以右键单击一个文件,git的差异: 右键单击第一个文件,然后通过tortoisegit子菜单选择“稍后Diff” 然后在第二个文件上,你也可以右键单击它,转到tortoisegit子菜单,然后选择“Diff with yourfilenamehere.txt”


我相信使用——no-index是你想要的:

git diff [<options>] --no-index [--] <path> <path>

正如git手册中提到的:

此表单用于比较文件系统上给定的两个路径。你可以 在工作树中运行命令时,省略——no-index选项 由Git控制,并且至少有一个路径指向外部 工作树,或者在工作树之外运行命令时 由Git控制。