Ajouter le dossier spécifique nouvellement créé à .gitignore dans Git

J’avais un répertoire de travail propre et j’ai apporté un clone d’un repo Git hier soir. Mais maintenant, mon serveur local a créé et contient un dossier de statistiques que je veux ignorer.

Je n’arrive pas à faire en sorte que Git ignore ce dossier lorsque j’exécute un statut git.

On branch master Your branch is ahead of 'origin/master' by 1 commit. Changes to be committed: (use "git reset HEAD ..." to unstage) new file: app_public/views/pages/privacy.php new file: app_public/views/pages/terms.php new file: public_html/stats/ctry_usage_200908.png new file: public_html/stats/daily_usage_200908.png new file: public_html/stats/dns_cache.db new file: public_html/stats/hourly_usage_200908.png new file: public_html/stats/index.html new file: public_html/stats/usage.png new file: public_html/stats/usage_200908.html new file: public_html/stats/webalizer.current new file: public_html/stats/webalizer.hist Changed but not updated: modified: .gitignore 

J’ai ajouté dans mon fichier .gitignore quelques lignes différentes mais il essaie toujours de les append:

 public_html/stats public_html/stats/** public_html/stats/**/* public_html/stats/* 

Essayez /public_html/stats/* ?

Mais comme les fichiers git status indiquaient qu’ils étaient validés, cela signifie que vous les avez déjà ajoutés manuellement. Dans ce cas, bien sûr, il est un peu tard pour ignorer. Vous pouvez les git rm --cache (IIRC).

Pour cela il y a deux cas

Cas 1: Le fichier est déjà ajouté au repository git.

Cas 2: Fichier nouvellement créé et son statut toujours affiché comme fichier non suivi lors de l’utilisation

 git status 

Si vous avez le cas 1:

ÉTAPE 1: Puis courez

 git rm --cached filename 

pour le retirer du cache de repo git

si c’est un répertoire alors utilisez

 git rm -r --cached directory_name 

ÉTAPE 2: Si le cas 1 est terminé, créez un nouveau fichier nommé .gitignore dans votre .gitignore git

ÉTAPE 3: Utilisez les commandes suivantes pour indiquer à git d’ignorer / de supposer que le fichier n’a pas été modifié

 git update-index --assume-unchanged path/to/file.txt 

ÉTAPE 4: Maintenant, vérifiez l’état en utilisant git status open .gitignore dans votre éditeur nano, vim, geany etc … n’importe lequel, ajoutez le chemin du fichier / dossier à ignorer. Si c’est un dossier, alors user folder_name/* pour ignorer tous les fichiers.

Si vous ne comprenez toujours pas, lisez l’ article git ignore le lien de fichier .

De “git help ignore” nous apprenons:

Si le motif se termine par une barre oblique, il est supprimé pour les besoins de la description suivante, mais il ne trouvera qu’une correspondance avec un répertoire. En d’autres termes, foo / correspondra à un répertoire foo et à des chemins situés en dessous, mais ne correspondra pas à un fichier régulier ou à un lien symbolique foo (ceci est cohérent avec le fonctionnement de pathspec en général dans git).

Par conséquent, ce dont vous avez besoin est

public_html / stats /

C’est /public_html/stats/* .

 $ ~/myrepo> ls public_html/stats/ bar baz foo $ ~/myrepo> cat .gitignore public_html/stats/* $ ~/myrepo> git status # On branch master # # Initial commit # # Untracked files: # (use "git add ..." to include in what will be committed) # # .gitignore nothing added to commit but untracked files present (use "git add" to track) $ ~/myrepo> 

Je suis incroyablement paresseux. Je viens de faire une recherche dans l’espoir de trouver un raccourci à ce problème, mais je n’ai pas eu de réponse, alors j’ai renversé la situation.

~ / bin / IGNORE_ALL

 #!/bin/bash # Usage: IGNORE_ALL  git status --porcelain | grep '^??' | cut -f2 -d' ' >> .gitignore git commit -m "$*" .gitignore 

EG: IGNORE_ALL a ajouté des statistiques ignorées

Cela va simplement append tous les fichiers ignorés à votre fichier .gitignore et valider. notez que vous souhaiterez peut-être append des annotations au fichier par la suite.