git diff 用于任何存储库之外的自定义 2 个文件?

Gin*_*as_ 5 git comparison diff git-diff

我需要git diff任何存储库之外的 2 个文件的功能。有办法做到吗?类似git diff --file1 /path/file1.txt --file2 /path/file2.txt如果没有,替代解决方案是什么?

tor*_*rek 8

答案在文档中是正确的git diff尽管我承认这很容易被忽略):

git diff [<选项>] --no-index [--] <路径> <路径>

    这种形式是比较文件系统上给定的两个路径。--no-index当在 Git 控制的工作树中运行命令且至少有一个路径指向工作树外部时,或者在 Git 控制的工作树外部运行命令时,可以忽略该选项。

您的案例可能属于“--no-index可选”类别,但即使它是可选的,您仍然可以使用它,因此:

git diff --no-index /path/file1.txt /path/file2.txt
Run Code Online (Sandbox Code Playgroud)

将使用 Git 的 diff。


Tim*_*sen -1

如果这两个文件确实位于任何 Git 存储库之外,那么 Git 实际上并不“了解”有关这些文件的任何信息,因此git diff无法工作。但是,常规的 Linuxdiff命令应该可以工作。所以不要这样做:

git diff /path/to/file1.txt /path/to/file2.txt
Run Code Online (Sandbox Code Playgroud)

做这个:

diff /path/to/file1.txt /path/to/file2.txt
Run Code Online (Sandbox Code Playgroud)

  • `diff` 不是 `git diff`,所以这个答案没有帮助。 (2认同)