Ignorer les répertoires dans les repos Git sur Windows

Comment puis-je ignorer les répertoires ou les dossiers dans Git en utilisant msysgit sur Windows?

824
demandé sur Gurwinder Singh 2008-12-05 15:17:28

17 réponses

créez un fichier nommé .gitignore dans l'Annuaire de votre projet. Ignorer les répertoires en entrant le nom du répertoire dans le fichier (avec une barre oblique ajoutée):

dir_to_ignore/

complément d'information ici .

1229
répondu stew 2017-05-30 18:11:30

par défaut, windows explorer affichera .gitignore alors qu'en fait le nom du fichier est .gitignore.txt

Git de ne pas utiliser .gitignore.txt

et vous ne pouvez pas renommer le fichier en .gitignore parce que l'Explorateur pense que c'est un fichier de type gitignore sans nom.

Non ligne de commande solution:

You can rename a file to ".gitignore." and it will create ".gitignore"
171
répondu brainwavedave 2016-04-08 17:25:07

il semble que pour ignorer les fichiers et les répertoires il y a deux façons principales:

  1. .gitignore

    • placer .gitignore fichier dans la racine de votre repo outre .git dossier (dans Windows, assurez-vous que vous voir la vraie extension de fichier et ensuite faire .gitignore. (avec le point à la fin de faire l'extension de fichier vide)
    • faire la configuration globale ~/.gitignore_global et lancer git config --global core.excludesfile ~/.gitignore_global pour ajouter ceci à votre configuration git

    note: les fichiers suivis avant peuvent être déverrouillés en exécutant git rm --cached filename

  2. Repo exclude - pour les fichiers locaux qui n'ont pas besoin d'être partagés, vous n'avez qu'à ajouter le motif de fichier ou le répertoire au fichier .git/info/exclude . Ces règles ne sont pas commutées, de sorte que ne sont pas vus par les autres utilisateurs plus d'info ici

[mise à jour] Pour faire des exceptions dans la liste des fichiers ignorés, voir cette question .

86
répondu Vairis 2018-02-08 22:15:54

j'ai eu quelques questions de la création d'un fichier dans l'explorateur windows avec un . au début.

une solution de contournement était d'entrer dans la cellule de commande et de créer un nouveau fichier en utilisant "edit"

42
répondu sf. 2011-07-10 04:36:02

pour demander à GIT d'ignorer certains fichiers ou dossiers, vous devez créer un fichier .gitignore .

mais dans l'Explorateur de windows vous devez fournir un nom pour le fichier, vous ne pouvez pas créer le fichier avec l'extension juste, l'astuce est que créer un fichier texte vide et aller à l'invite de commande et changer le nom du fichier en .gitignore

ren "New Text Document.txt" .gitignore

ouvrez maintenant le fichier avec votre éditeur de texte préféré et ajoutez les noms de fichier / dossier que vous souhaitez que vous ignorer. vous pouvez également utiliser des caractères génériques comme ceci *.txt

espère que cela répond à votre question,

40
répondu Mahes 2010-03-25 18:14:52

si vous voulez maintenir un dossier et pas les fichiers qu'il contient, il suffit de mettre un".gitignore " fichier dans le dossier avec "*" comme contenu. Ce fichier ignorera tout le contenu du dépôt. Mais .gitignore sera inclus dans votre pension.

$ git add path/to/folder/.gitignore

Si vous ajoutez un dossier vide, vous recevez ce message (.gitignore est fichier caché)

The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added

, utilisez l'option "-f" à force d'ajouter:

$ git add path/to/folder/.gitignore -f
18
répondu sensorario 2018-04-11 17:36:11

dans Windows il y a une prise supplémentaire avec des barres obliques. À l'exclusion d'un seul répertoire dans .gitignore avec

dir_to_exclude /

peut fonctionner, mais à l'exclusion de tous les répertoires avec

/

cause des problèmes quand vous avez des noms de fichiers avec des espaces (comme my file.txt ) dans votre répertoire: Git bash échappe ces les espaces avec un antislash (comme my\ file.txt ) et Git pour Windows ne distingue pas entre / et \ .

pour exclure tous les répertoires mieux utiliser:

* * /

deux astérisques consécutifs signifient contenu du répertoire.

14
répondu wortwart 2014-01-13 13:49:49

aussi dans votre répertoire \.git\info il y a un fichier exclu qui est effectivement la même chose que .gitignore (je pense). Vous pouvez ajouter des fichiers et des répertoires à ignorer.

14
répondu Si3 2016-04-08 17:24:37

j'ai eu quelques problèmes pour que git le récupère .gitignore sous Windows. Le fichier $ GIT_DIR/info / exclude semble toujours fonctionner. L'inconvénient de cette approche, cependant, est que les fichiers du répertoire $GIT_DIR ne sont pas inclus dans le check-in et ne sont donc pas partagés.

(p. S. $GIT_DIR est habituellement le dossier caché nommé .git)

7
répondu Jason 2012-02-15 19:43:43

, Vous pouvez créer l' ".gitignore" fichier avec le contenu:

*
!.gitignore

Ça marche pour moi et simples.

7
répondu Claudionor Oliveira 2015-02-05 14:27:04

pour ignorer un répertoire entier dans git, la façon la plus simple est d'inclure un .gitignore fichier dans le répertoire cible qui contient simplement " * "

Un exemple d'illustration,

Exemple De Système

/root/
    .gitignore
    /dirA/
        someFile1.txt
        someFile2.txt
    /dirB/
        .gitignore
        someFile3.txt
        someFile4.txt

Objectif

  • ignorer le contenu de / dirB /

"151960920 De Niveau Supérieur".gitignore (/racine./gitignore)

  • C'est là que votre standard gitignore info va

Répertoire Ignoré .gitignore (/root / dirB.gitignore)

  • Ce fichier se lit comme '*' et le répertoire est complètement ignoré, et tous les fichiers!

et c'est tout simple :)

6
répondu J-Dizzle 2017-12-25 20:45:28

je suppose que le problème est que votre arbre de travail est comme:

a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore

... avec le .gitignore que vous décrivez. Cela vous donnera git status sortie comme:

$ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   .gitignore
#   a-cache/
#   b-cache/

... si les fichiers index.html n'ont pas encore été ajoutés au dépôt. (git voit qu'il y a des fichiers non marqués dans les répertoires de cache, mais ne rapporte que les répertoires.) Pour corriger cela, assurez-vous que vous avez ajouté et commis les fichiers index.html :

git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"

... et votre git status ressemblera alors à:

$ git status
# On branch master
# 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)

(évidemment, vous voulez aussi commettre .gitignore , j'étais juste paresseux avec ce cas de test.)

5
répondu Mark Longair 2012-06-29 10:19:01

juste au cas où vous devez exclure des sous-dossiers, vous pouvez utiliser le Joker ** pour exclure n'importe quel niveau de sous-répertoire.

**/build/output/Debug/
5
répondu Eat at Joes 2018-02-17 00:40:58

Quand tout le reste échoue essayez de modifier le fichier

/.git/info/exclure

et d'ajouter les répertoires que vous voulez à la fin du fichier, comme ceci:

# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/

j'ai ajouté les dossiers "actifs" et "compilé" à la liste des fichiers et répertoires à ignorer.

4
répondu Xedret 2018-04-04 21:38:12

Sur Unix:

touch .gitignore

Sous Windows:

echo > .gitignore

ces commandes exécutées dans un terminal vont créer un fichier .gitignore dans l'emplacement courant.

alors il suffit d'ajouter des informations à ce fichier .gitignore (en utilisant Notepad++ par exemple) quels fichiers ou dossiers devraient être ignorés. Enregistrez vos modifications. C'est tout :)

plus d'informations: https://www.atlassian.com/git/tutorials/saving-changes/gitignore

2
répondu fvolodimir 2018-07-25 08:25:53

sur windows et Mac, si vous voulez ignorer un dossier nommé Flower_Data_Folder dans le répertoire courant, vous pouvez faire:

echo Flower_Data_Folder >> .gitignore

Si c'est un fichier nommé data.txt

echo de données.txt >>.gitignore

si c'est un chemin comme" données/mots de passe.txt "

echo "Données/les mots de passe.txt">>.gitignore.

2
répondu Olusola Omosola 2018-08-14 11:17:42

j'ai eu des problèmes similaires, je travaille sur une chaîne d'outils windows avec un repo partagé avec des gars de linux, ils créent joyeusement des fichiers avec les mêmes noms [sauf pour les cas] dans un dossier donné.

l'effet est que je peux cloner le repo et avoir immédiatement des douzaines de fichiers "modifiés" qui si je coche dedans créerait des ravages.

j'ai windows réglé à sensible à la casse et git pour ne pas ignorer case mais il échoue toujours (dans les appels api win32 apparemment).

si je gitignore les fichiers alors je dois me rappeler de ne pas suivre le .dossier gitignore.

Mais j'ai trouvé une bonne réponse ici http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html

Chris

1
répondu Chris Aaaaa 2012-08-06 15:01:49