В последних версиях git вы можете git add -N
файл (или --intent-to-add
), который добавляет блоб нулевой длины к индексу в этом месте. В результате ваш «неотслеживаемый» файл теперь становится модификацией для добавления всего содержимого в этот файл нулевой длины, и это отображается в выводе «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
(настройка псевдонима - ваш друг здесь).