web-dev-qa-db-ja.com

diff --git unknownオプション

走ろうとすると

diff --git a/drivers/cpufreq/intel_pstate.c b/drivers/cpufreq/intel_pstate.c

不明なオプションが表示されます(apt-get install git経由でgitをインストールしました)

6
user275941

どちらかを使用

diff -u file1 file2

または

git diff branch/commit1 branch/commit2

https://www.kernel.org/pub/software/scm/git/docs/git-diff.html のgit diffの詳細

私は何も知りません--gitオプションのdiffの場合、manページには表示されません。

15
Michael Durrant

一般的に、2つのディレクトリ間で再帰的なdiffを実行すると、各ファイルの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を使用してファイルシステム内の2つのファイルまたはディレクトリを比較したい場合は、次のコマンドを実行できます。

git diff --no-index a b

--no-indexフラグは、現在のgitリポジトリを無視することを示しています。gitリポジトリにいない場合は、このオプションを省略できます。)Gitは「unidiff」形式で出力を生成します。これをsystem diffコマンドで概算したい場合は、diff -ru a bを使用できます。 (-uフラグはunidiff形式を選択しますが、-rはディレクトリに再帰します。)

2
user3188445

本当の真実は、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
2
redolent