Comme déjà dit, pour exclure du statut il suffit d'utiliser:
git status -uno # must be "-uno" , not "-u no"
Si vous souhaitez à la place ignorer définitivement les fichiers actuellement non suivis, vous pouvez, depuis la racine de votre projet, lancer:
git status --porcelain | grep '^??' | cut -c4- >> .gitignore
Chaque appel ultérieur à git status
ignorera explicitement ces fichiers.
UPDATE : la commande ci-dessus a un inconvénient mineur: si vous n'avez pas .gitignore
encore de fichier, votre gitignore s'ignorera! Cela se produit car le fichier .gitignore
est créé avant l' git status --porcelain
exécution de. Donc, si vous n'avez pas .gitignore
encore de fichier, je vous recommande d'utiliser:
echo "$(git status --porcelain | grep '^??' | cut -c4-)" > .gitignore
Cela crée un sous-shell qui se termine avant la création du .gitignore
fichier.
EXPLICATION DE LA COMMANDE car je reçois beaucoup de votes (merci!) Je pense que je ferais mieux d'expliquer un peu la commande:
git status --porcelain
est utilisé à la place de git status --short
parce que les états manuels "Donner la sortie dans un format facile à analyser pour les scripts. Ceci est similaire à la sortie courte, mais restera stable entre les versions de git et quelle que soit la configuration de l'utilisateur." Nous avons donc à la fois l'analyse et la stabilité;
grep '^??'
filtre uniquement les lignes commençant par ??
, qui, selon le manuel de l'état de git , correspondent aux fichiers non suivis;
cut -c4-
supprime les 3 premiers caractères de chaque ligne, ce qui nous donne juste le chemin relatif vers le fichier non suivi;
- les
|
symboles sont des tubes , qui passent la sortie de la commande précédente à l'entrée de la commande suivante;
- les symboles
>>
et >
sont des opérateurs de redirection , qui ajoutent la sortie de la commande précédente à un fichier ou écrasent / créent un nouveau fichier, respectivement.
UNE AUTRE VARIANTE pour ceux qui préfèrent utilisersed
au lieu de grep
et cut
, voici une autre façon:
git status --porcelain | sed -n -e 's/^?? //p' >> .gitignore