我需要在myfile
中的master~2
版本和存储库本身之外的myfile
版本之间进行区别(比如D:\folder\myfile
) 。
git-diff
下--no-index
下的措辞说:
git diff --no-index [--options] [ - ] [...]
此表单用于比较文件系统上给定的两个路径。在工作中运行命令时,可以省略--no-index选项 由Git控制的树和至少有一条路径指向外部 工作树
措辞“至少一个”似乎意味着可以在一个repo文件和一个非repo文件之间进行比较,但实际上:
$ git diff master~2:myfile D:/folder/myfile error: Could not access: 'master~2:myfile' $ git diff master~2:myfile -- D:/folder/myfile fatal: D:/folder/myfile: 'D:/folder/myfile' is outside repository $ git diff --no-index master~2:myfile -- D:/folder/myfile usage: git diff --no-index <path> <path>
实现这种比较的最简单方法是什么?
答案 0 :(得分:0)
在不使用git-diff
的情况下,我找到了实现此目的的间接方式 - this blog post中给出的方法,只使用外部文件作为原始&#34;当前文件&#34;,并制作在执行git show
之前,一定要将repo目录作为current-directory。
所涉及的步骤是:
:vsp new
垂直拆分新(空白)窗口:cd
到git存储库的工作目录:read !git show master~2:myfile
读取myfile的内容,因为它是2次提交前setf yourfiletypehere
用于语法突出显示(可选):diffthis
在一个窗口中,然后切换到另一个窗口再次运行:diffthis
,你就有了你的差异