1. ホーム
  2. ギット

[解決済み】未追跡のファイルに対してgit diffを使用できますか?

2022-03-27 20:11:10

質問

と尋ねることは可能ですか? git diff を使用して、追跡されていないファイルを差分出力に含めるか、または、最も良い方法は git add を、新しく作成したファイルと編集した既存のファイルに適用し、その後使用します。

git diff --cached

?

解決方法は?

最近のgitのバージョンでは、以下のことが可能です。 git add -N ファイル(または --intent-to-add を使用すると、その場所のインデックスに長さ0のブロブが追加されます。つまり、quot;untracked" ファイルが、この長さゼロのファイルにすべての内容を追加するための変更となり、それが "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

(ここではエイリアスの設定が便利です)。