vous pouvez git add -N
le fichier (ou --intent-to-add
), ce qui ajoute un blob de longueur nulle à l'indice à cet endroit. Le résultat est que votre fichier "non-tracé" devient maintenant une modification pour ajouter tout le contenu à ce fichier de longueur nulle, et cela apparaît dans la sortie "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
Malheureusement, comme l'a souligné, vous ne pouvez pas git stash
alors que vous avez un fichier --intent-to-add
en attente comme celui-ci. Bien que si vous avez besoin de stocker, vous ajoutez simplement les nouveaux fichiers et puis les stash. Ou vous pouvez utiliser la solution de contournement d'émulation:
git update-index --add --cacheinfo \
100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 new.txt
(la configuration d'un alias est votre ami ici).
Il s'avère que ma copie de Git n'est pas assez récente pour ajouter -N, mais cela répond à ma question. –
Vous pouvez émuler "git add -N new.txt" avec "git update-index --add --cacheinfo 100644 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 nouveau.txt " (comment ai-je réussi à mettre ceci sur la mauvaise réponse?) – araqnid
En guise de tête,' git add -N' casse 'git stash' http://bit.ly/hLDfHq –