by shigemk2

当面は技術的なことしか書かない

git diff -name-status(ハイフン1つ) と、git diff --name-status(ハイフン2つ)の違いに気をつけよう

ブランチ間の変更をさくっと表示するには? --name-statusの活用 - Seasons.NET
git diff -name-statusというコマンドがあります。

$ git diff -name-status ブランチ1 ブランチ2

とすることで、ブランチ1とブランチ2の差分を表示してくれる、割と便利なコマンドだ。
このname-statusオプションについて、ハイフン1つ -name-status とハイフン2つ --name-status で結果が違う事に慄然としている。

ハイフン1つ

git diff -name-status ブランチ1 ブランチ2

差分を詳しく表示してくれる。

diff --git a/README.md b/README.md
index 5c9a9dd..4e12f93 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,8 @@
 css-cheet
 =========

-css-cheet
\ No newline at end of file
+css-cheet
+
+ふあああ
+にゃああ
+トチ狂った
(END)

ハイフン2つ

git diff --name-status ブランチ1 ブランチ2

どのファイルが変更・追加されたかのみ。

M       README.md
(END)

オマケ

git diff -name-status ブランチ1 ブランチ2 --stat

README.md |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
(END)

git diff --name-status ブランチ1 ブランチ2 --stat
(こちらは--statをつけようがつけまいが変わらない)

M       README.md
(END)

追記

  • name-statusが盛大に間違っていたことが判明しました。すみません。

ハイフン1つだと、オプション自体が無視されるみたいです。