当我尝试跑步时
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
我得到未知选项(我已经通过安装了 git apt-get install git
)
答案1
要么使用
diff -u file1 file2
或者
git diff branch/commit1 branch/commit2
有关 git diff 的更多信息,请参见https://www.kernel.org/pub/software/scm/git/docs/git-diff.html
我不知道有任何--git
选项,diff
而且手册页也没有显示它。
答案2
一般来说,当您在两个目录之间运行递归比较时,每个文件 diff 都会包含一个 diff 命令,显示它对每个文件执行的操作。例如:
$ diff -ru a b
diff -ru a/file b/file
--- a/file 2015-07-17 01:06:14.078875805 -0700
+++ b/file 2015-07-17 01:06:21.969077076 -0700
@@ -1 +1 @@
-hello
+goodbye
Git 希望以相同的格式生成补丁,因此每个文件前面必须有一行以“ diff
...”开头。但由于 git 使用它自己的内部 diff 实现,为了让阅读输出的人们清楚他们正在查看的内容,git 添加了虚构的标志--git
。
实际上,如果你想使用 git 来比较文件系统中的两个文件或目录,你可以运行:
git diff --no-index a b
(该--no-index
标志表示忽略您所在的任何 git 存储库。如果您不在 git 存储库中,则可以省略该选项。)Git 以“unidiff”格式生成输出。如果您想使用系统 diff 命令来近似,您可以使用diff -ru a b
。 (该-u
标志选择 unidiff 格式,而-r
递归到目录中。)
答案3
真正的事实是 git 显示的是一个假命令。
$ git diff drivers/cpufreq/intel_pstate.c
diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c
index 286bfoo..14a8foo 100644
--- a/drivers/cpufreq/intel_pstate.c
+++ b/drivers/cpufreq/intel_pstate.c