追跡されていないファイルを diff 出力に含めるように要求することは可能ですかgit diff
、それとも新しく作成されたファイルと編集した既存のファイルに対して次のコマンドを使用するのが最善策でしょうかgit add
。
git diff --cached
ベストアンサー1
最近の git バージョンでは、git add -N
ファイル (または--intent-to-add
) を実行して、その場所のインデックスに長さ 0 の BLOB を追加できます。その結果、「追跡されていない」ファイルは、この長さ 0 のファイルにすべてのコンテンツを追加する変更になり、「git diff」出力に表示されます。
git diff
echo "this is a new file" > new.txt
git diff
git add -N new.txt
git diff
diff --git a/new.txt b/new.txt
index e69de29..3b2aed8 100644
--- a/new.txt
+++ b/new.txt
@@ -0,0 +1 @@
+this is a new file
git stash
残念ながら、指摘されているように、このようにファイルが保留中の場合はできません--intent-to-add
。ただし、スタッシュする必要がある場合は、新しいファイルを追加してからスタッシュするだけです。または、エミュレーションの回避策を使用することもできます。
git update-index --add --cacheinfo \
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 new.txt
(ここではエイリアスを設定すると便利です)。