97 votes

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

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

Je n'arrive pas à convaincre Git d'ignorer 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 <file>..." 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 .gitignore quelques lignes différentes mais il essaye toujours de les ajouter:

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

107voto

Essayez /public_html/stats/* ?

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

107voto

Kshitiz Points 199

Pour cela, il existe deux cas

Cas 1: Fichier déjà ajouter à repo git.

Cas 2: Fichier nouvellement créé, et son statut affiche toujours sans traces de fichier lors de l'utilisation de

git status

Si vous avez des cas 1:

ÉTAPE 1: Ensuite, exécutez

git rm --cached filename 

pour la retirer de repo git cache

si c'est un répertoire, puis utiliser

git rm -r --cached  directory_name

ÉTAPE 2:

si le cas 1 est plus alors ne la suite

créer un nouveau fichier nommé .gitignore dans votre repo git

*Étape 3:*Utilisation suivantes pour indiquer à git d'ignorer/assumer fichier est inchangé

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

Étape 4:

Maintenant, vérifiez le statut à l'aide de git status

ouvrez .gitignore dans votre éditeur

nano, vim, geany, etc... tout un

ajouter le chemin du fichier/dossier à ignorer

si c'est un dossier alors l'utilisateur folder_name/* d'ignorer tous les fichiers

https://help.github.com/articles/ignoring-files

Si tu ne comprends toujours pas lire le lien ci-dessus

17voto

kajaco Points 1289

De "git aider à ignorer", nous apprenons:

Si le modèle se termine par un slash, c' est supprimé pour l'application de la la suite de la description, mais il serait seulement trouver une correspondance avec un répertoire. Dans d'autres termes, foo/ correspondra à une répertoire foo et les chemins d'accès en dessous, mais ne peut pas correspondre à un fichier ou un lien symbolique foo (ce qui est cohérent avec la façon dont pathspec travaille en général dans git).

Par conséquent, ce que vous avez besoin est

public_html/stats/

6voto

August Lilleaas Points 25812

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 <file>..." to include in what will be committed)
#
#   .gitignore
nothing added to commit but untracked files present (use "git add" to track)
$ ~/myrepo>
 

2voto

michael Points 5990

Je suis incroyablement paresseux. Je viens de faire une recherche dans l'espoir de trouver un raccourci vers ce problème, mais je n'ai pas eu de réponse, alors je l'ai bousillé.

~ / bin / IGNORE_ALL

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

EG: IGNORE_ALL ajouté stat ignore

Cela ajoutera simplement tous les fichiers ignorés à votre fichier .gitignore et à vos commandes. notez que vous voudrez peut-être ajouter des annotations au fichier ultérieurement.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X