L'une des commandes que je trouve incroyablement utiles dans Git est git add -u
de jeter tout sauf les fichiers non suivis dans l'index. Y a-t-il un inverse de cela? Au cours des derniers mois, je me suis souvent retrouvé dans une position où j'ai ajouté de manière interactive des mises à jour à l'index et je souhaite ajouter tous les fichiers non suivis à cet index avant de m'engager.
Existe-t-il un moyen d'ajouter uniquement les fichiers non suivis à l'index sans les identifier individuellement? Je ne vois rien d'évident dans la documentation d'aide, mais il me manque peut-être?
Merci.
.gitignore
est spécifiquement conçu à cette fin, nongit add -u
.Réponses:
C'est facile avec
git add -i
. Tapeza
(pour "ajouter non suivi"), puis*
(pour "tout"), puisq
(pour quitter) et vous avez terminé.Pour le faire avec une seule commande:
echo -e "a\n*\nq\n"|git add -i
la source
echo -e "a\n*\nq\n"|git add -i
Argument list too long
... si proche!git add -i
alors4
d'ajouter un suivi, puis*
pour tout, puisq
de quittergit ls-files -o --exclude-standard
donne des fichiers non suivis, vous pouvez donc faire quelque chose comme ci-dessous (ou y ajouter un alias):la source
-o, --others
Show other (i.e. untracked) files in the output
Ce n'est pas exactement ce que vous recherchez, mais j'ai trouvé cela très utile:
Ajoutera tous les fichiers à l'index, mais sans leur contenu. Les fichiers qui n'étaient pas suivis se comportent désormais comme s'ils étaient suivis. Leur contenu sera affiché dans
git diff
, et vous pourrez ensuite l'ajouter de manière interactive avecgit add -p
.la source
git commit -p
de parcourir de nouveaux fichiers.Vous pouvez ajouter ceci à votre fichier ~ / .gitconfig:
Ensuite, à partir de la ligne de commande, exécutez simplement:
la source
Les gens ont suggéré de rediriger la sortie de
git ls-files
to,git add
mais cela échouera dans les cas où il y a des noms de fichiers contenant des espaces blancs ou des caractères glob tels que*
.Le moyen le plus sûr serait d'utiliser:
où
-z
dit à git d'utiliser des\0
terminateurs de ligne et-0
dit la même chose à xargs. Le seul inconvénient de cette approche est que l'-0
option n'est pas standard, donc seules certaines versions de laxargs
prennent en charge.la source
git ls-files
répertorie les fichiers dans le répertoire courant. Si vous souhaitez répertorier les fichiers non suivis de n'importe où dans l'arborescence, cela peut fonctionner mieux:Pour ajouter tous les fichiers non suivis dans l'arborescence:
la source
Je l'ai essayé et ça marche :
git stash
mettra uniquement tous les fichiers suivis modifiés dans une pile distincte, puis les fichiers restants sont des fichiers non suivis. Ensuite, en faisant,git add .
mettra en scène tous les fichiers non suivis, selon les besoins. Finalement, pour récupérer tous les fichiers modifiés de la pile en faisantgit stash pop
la source
Si vous avez des milliers de fichiers non suivis (euh, ne demandez pas),
git add -i
cela ne fonctionnera pas lors de l'ajout*
. Vous obtiendrez une erreur indiquantArgument list too long
.Si vous êtes alors également sous Windows (ne demandez pas # 2 :-) et devez utiliser PowerShell pour ajouter tous les fichiers non suivis, vous pouvez utiliser cette commande:
la source
git ls-files -o --exclude-standard | % { git add $_ }
Beaucoup de bons conseils ici, mais à l'intérieur de Powershell, je n'ai pas pu le faire fonctionner.
Je suis un développeur .NET et nous utilisons toujours principalement Windows OS car nous n'avons pas tellement utilisé le noyau .Net et les plates-formes croisées, donc mon utilisation quotidienne avec Git se fait dans un environnement Windows, où le shell utilisé est plus souvent Powershell et pas Git bash.
La procédure suivante peut être suivie pour créer une fonction aliasée pour ajouter des fichiers non suivis dans un référentiel Git.
Dans votre fichier de profil $ de Powershell (au cas où il manquerait, vous pouvez exécuter: New-Item $ Profile)
notepad $ Profile
Maintenant, ajoutez cette méthode Powershell:
Enregistrez le fichier de profil $ et rechargez-le dans Powershell. Rechargez ensuite votre fichier de profil $ avec:. $ profil
Ceci est similaire à la commande source dans les environnements * nix IMHO.
Donc, la prochaine fois que vous, si vous êtes développeur en utilisant Powershell dans Windows contre le dépôt Git et que vous souhaitez simplement inclure des fichiers non suivis, vous pouvez exécuter:
AddUntracked-Git
Cela suit la convention Powershell où vous avez des verbes-noms.
la source
git add. (ajoutez tous les fichiers de ce répertoire)
git add -all (ajoute tous les fichiers dans tous les répertoires)
git add -N peut être utile pour lister lesquels pour plus tard ....
la source
git add -u
ajoutera des fichiers modifiés non non suivisPour ajouter tous les fichiers non suivis, la commande git est
De plus, si vous souhaitez obtenir plus de détails sur les différentes options disponibles, vous pouvez taper commande
au lieu de la première commande, vous obtiendrez plus d'options, y compris l'option d'ajouter tous les fichiers non suivis comme indiqué ci-dessous:
la source