9
votes

Git ignorer le motif .gitattributes

J'ai une structure de répertoire comme ceci:

Rakefile        export-ignore
*.local         export-ignore
*.development   export-ignore
*.staging       export-ignore


1 commentaires

Comment votre fichier .gitattributes est-il ressemblant?


7 Réponses :


1
votes

essayez-vous d'avoir les fichiers inclus dans le référentiel mais pas dans l'archive créée à partir de archive git ? Si c'est la fois la syntaxe de votre .gitattributes fichiers faux. Sinon, alors .gitattributes n'est pas ce que vous devez utiliser.

Pour avoir des fichiers exclus de l'archive produite par archive git Vous devez mettre les suivants dans le .gitatTrubutes . xxx


0 commentaires

4
votes

Remarque: Pour ignorer un répertoire, vous devez avoir un ' / code>' à la fin dudit répertoire.

Rakefile/ export-ignore


4 commentaires

Aussi, assurez-vous de commettre votre .gitattributes ou utilisez l'option - tract-workTree-attributs pour archive git . Par défaut, il utilise les attributs de l'arborescence archivée; S'ils sont juste dans le répertoire de travail, ils seront normalement ignorés. Pour tester, vous pouvez utiliser - des attributs de WorkTree , puis commettez-le une fois que vous êtes sûr qu'il fonctionne.


@Jefromi - J'ai utilisé les instructions dans le livre GIT mais ils ne vous disent pas Demandez au fichier à utiliser "Ces paramètres spécifiques à un chemin sont appelés attributs git et sont définis dans un fichier .gitattributes dans l'un de vos répertoires (normalement la racine de votre projet) ou dans le fichier .git / info / Dossier des attributs Si vous ne voulez pas que le fichier attributs soit engagé avec votre projet. " Mais, maintenant, vous l'avez amené, je vois que la page Git-Archive Man suggère l'option - ThorkTree-Attributs pour effectuer ce travail. Je vais essayer ça maintenant.


@JEfromi - OK, deux choses étaient nécessaires. - Les attributs de travail à part entière n'ont pas fonctionné, mais lorsque j'ai déplacé le fichier .gitattributes dans la racine directrice du site Dir, puis cela a fonctionné. Encore une fois, le livre Git implique que le fichier n'a pas besoin d'être à la racine de fonctionner "... (normalement la racine de votre projet)", donc je me sens un peu déprimé par ces documents (pour une fois) . Je pense aussi que ce n'est pas - ce que vous pensions que le comportement doit avoir à opter dans le fichier lorsque .gitignore fonctionne juste, imo. Quoi qu'il en soit, je considère que votre commentaire est la bonne réponse, donc si vous souhaitez faire ce commentaire dans une réponse que je peux le marquer.


Impossible d'ajouter le sentier '/' dans la version 1.7.5.4



4
votes

Je crois que @Jefromi a donné aux informations nécessaires pour que cela me soit résolu avec ses commentaires, mais est trop humble pour prendre le crédit, et j'aimerais garder mon indice d'acceptation à 100% (assez à juste titre), donc je vais Donnez la réponse ici:


OK, deux choses étaient nécessaires. - Attributs de WorkTree PROPRE PAS NE PAS TRAVAILLÉ, mais lorsque j'ai déplacé le fichier .gitattributes dans la racine directrice du site Dir, puis cela a fonctionné. Encore une fois, Le git Le livre implique que le fichier n'a pas besoin d'être à la racine de fonctionner pour travailler "... (normalement la racine de votre projet)», alors je me sens un peu laissé tomber par ces documents (pour une fois) . Je pense aussi que ce n'est pas - ce que vous pensions que le comportement doit avoir à opter dans le fichier lorsque .gitignore fonctionne juste, imo.


1 commentaires

Merci d'avoir fourni une réponse correcte à votre question. Les autres réponses n'étaient pas utiles dans mon cas.



2
votes

Avec GIT Version 1.7.2.5, qui est la valeur par défaut de Debian Squeeze (d'où ce post), il ne doit pas strong> être une barre oblique à la fin pour ignorer un répertoire. Donc, afin d'ignorer le Dir de déploiement dans la question ci-dessus, la ligne suivante doit être utilisée (pas de barre oblique):

deploy        export-ignore


1 commentaires

Avec git 1.8.1.1 Ce n'est pas le cas. Si vous n'incluez pas la barre oblique de fin, le dir sera ajouté à l'archive.



2
votes

Pour les répertoires, j'ai eu des problèmes avec différentes versions de GIT, j'ai donc dû inclure une entrée avec et sans entraînement slash:

  • foo / barre export-ignore
  • FOO / BAR / EXPORT-IGNORE

    où Foo / Bar est relativement sur le lieu où j'ai couru Archives Git , mais les .gitattributes réels se trouvaient dans le répertoire racine du projet en plus de - Attributs de WorkTree Comme indiqué ci-dessus.


0 commentaires

5
votes

Je ne sais pas que c'est un cas commun, mais j'ai eu du mal à exclure le dossier tests de l'arborescence source qui ont de nombreux niveaux de dossiers imbriqués. Si j'écris seulement cette ligne à .gitattributes xxx

il n'a pas fonctionné et que le répertoire complet était resté dans les archives. La solution consistait à ajouter des caractères génériques pour tous les niveaux de sous-résidents: xxx

avec ces lignes Le répertoire "/ code> a finalement disparu des archives.


2 commentaires

TESTS / ** EXPORT-IGNORE Travailler dans ce cas?


Tests / ** / * Est ce dont vous avez besoin pour ignorer tous les fichiers de toute profondeur des tests de répertoire ".



2
votes

Si vous voulez que Git ignore un fichier, mettez-la dans le .gitignore fichier pas le . Attributes fichier.

Si vous souhaitez ignorer votre filefile, mettez ce qui suit dans le fichier .gitignore à la racine de votre projet. xxx

Spécifiez le chemin complet si vous en avez plus d'un et vous Vous voulez seulement ignorer l'un d'entre eux.

Quelques exemples de comment implémenter la correspondance des motifs pour ces fichiers:

Pour tous les fichiers de tous les dossiers xxx

Pour un fichier dans tous les dossiers xxx

Fichier dans le dossier racine xxx

Fichier dans un dossier xxx

Tous les fichiers d'un dossier xxx


0 commentaires