203 votes

Utiliser .gitignore pour tout ignorer sauf les répertoires spécifiques

Mon problème est que j'ai un tas de sites WordPress dans mon repo git, de qui je veux à s'engager de manière sélective uniquement le contenu de mon themes des dossiers, tout en ignorant le reste de la redondante fichiers trouvés dans WordPress.

J'ai utilisé .gitignore fichiers à ignorer les types de fichiers avant, mais peut-il être utilisé dans l'autre sens - c'est-à ignorent tout, MAIS un certain chemin d'accès au dossier?

racine (repo git)
- / wordpress
- - / (Site WordPress 1)/wp-content/themes
- - / (Site WordPress 2)/wp-content/themes
- - / (Site WordPress 3)/wp-content/themes

Merci

Mise à JOUR:

Sur la base des réponses, je n'ai la suite, mais cela ne fonctionne pas. Des idées?

# Ignore everything:
*
# Except for wordpress themes:
!*/wp-content/themes/*

J'ai aussi essayé les variations suivantes:

!*/wp-content/themes*
!*wp-content/themes/*
!wp-content/themes/*
!/wordpress/*/wp-content/themes*
!wordpress/*/wp-content/themes*

Aucun de ces lire mon themes des dossiers.

182voto

Yarin Points 18186

Voici comment je l'ai fait, vous avez à pied les chemins, vous ne pouvez pas le générique plus d'un niveau dans toutes les directions:

# Ignore everything:
*

# Except for the themes directories:

!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/
!wordpress/*/wp-content/themes/*
!wordpress/*/wp-content/themes/*/*
!wordpress/*/wp-content/themes/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*
!wordpress/*/wp-content/themes/*/*/*/*/*

Remarquez comment vous avez pour autoriser explicitement le contenu de chaque niveau que vous souhaitez inclure. Donc, si j'ai les sous-répertoires 5 de profondeur sous thèmes, j'ai encore besoin de le préciser.

Ce n'est que la façon dont il a travaillé pour moi. Si quelqu'un se soucie d'offrir une meilleure connaissance de l'explication par tous les moyens.

Aussi, ces réponses utiles:
comment-faire-nié-modèles-travail-en-gitignore
comment-faire-gitignore-exclusion-règles-en fait-travail


NOTE: j'ai essayé en utilisant le double-générique de "globules", mais selon ce que la fonctionnalité est dépendante du système et il ne fonctionne pas sur mon mac:

Ne fonctionne PAS:

!**/wp-content/themes/
!**/wp-content/themes/**

132voto

dwenaus Points 763

J'ai essayé ce qui précède et ils n'ont pas si bien fonctionné. une BEAUCOUP meilleure approche est la suivante à partir de l’ adresse suivante: https://gist.github.com/444295

 # This is a template .gitignore file for git-managed WordPress projects.
#
# Fact: you don't want WordPress core files, or your server-specific
# configuration files etc., in your project's repository. You just don't.
#
# Solution: stick this file up your repository root (which it assumes is
# also the WordPress root directory) and add exceptions for any plugins,
# themes, and other directories that should be under version control.
#
# See the comments below for more info on how to add exceptions for your
# content. Or see git's documentation for more info on .gitignore files:
# http://kernel.org/pub/software/scm/git/docs/gitignore.html

# Ignore everything in the root except the "wp-content" directory.
/*
!.gitignore
!wp-content/

# Ignore everything in the "wp-content" directory, except the "plugins"
# and "themes" directories.
wp-content/*
!wp-content/plugins/
!wp-content/themes/

# Ignore everything in the "plugins" directory, except the plugins you
# specify (see the commented-out examples for hints on how to do this.)
wp-content/plugins/*
# !wp-content/plugins/my-single-file-plugin.php
# !wp-content/plugins/my-directory-plugin/

# Ignore everything in the "themes" directory, except the themes you
# specify (see the commented-out example for a hint on how to do this.)
wp-content/themes/*
# !wp-content/themes/my-theme/
 

18voto

9voto

dappawit Points 3782

Si vous préfixez un modèle avec un point d'exclamation ( ! ), il annule tout modèle précédent qui l'excluait. Donc, vraisemblablement, vous pouvez tout ignorer, puis n'autoriser que ce que vous voulez en utilisant ce modèle.

5voto

cabgfx Points 300

La réponse de Yarin a fonctionné pour moi, voici ma version (je n'ai pas besoin du sous-répertoire /wordpress ):

 *

!.gitignore
!/wp-content/
!/wp-content/themes/
!/wp-content/themes/*
!/wp-content/themes/*/*
!/wp-content/themes/*/*/*
!/wp-content/themes/*/*/*/*
!/wp-content/themes/*/*/*/*/*

# I don't want to track this one, so it's included here, after the negated patterns. 
wp-content/themes/index.php
 

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