Je viens de faire un git init
à la racine de mon nouveau projet.
J'ai ensuite créé un .gitignore
fichier.
Maintenant, lorsque je tape git status
, le fichier .gitignore apparaît dans la liste des fichiers non suivis. Pourquoi donc?
git
version-control
dvcs
gitignore
Jacques René Mesrine
la source
la source
git add self && git commit -m "-1 for reverting existential depression" && git remote rm HEAD
how to gitignore .gitinore file
et la question et la réponse acceptée ne sont pas vraiment liées au titre. Le titre pourrait être amélioré.Réponses:
Le
.gitignore
fichier doit être dans votre référentiel, il doit donc être ajouté et validé, commegit status
suggéré. Il doit faire partie de l'arborescence du référentiel, afin que les modifications apportées à celui-ci puissent être fusionnées, etc.Alors, ajoutez-le à votre référentiel, il ne doit pas être ignoré.
Si vous voulez vraiment, vous pouvez ajouter
.gitignore
au.gitignore
fichier si vous ne voulez pas qu'il soit validé. Cependant, dans ce cas, il est probablement préférable d'ajouter les ignores à.git/info/exclude
, un fichier local d'extraction spécial qui fonctionne exactement comme .gitignore mais ne s'affiche pas en "état git" car il se trouve dans le.git
dossier.Voir aussi https://help.github.com/articles/ignoring-files
la source
Si vous souhaitez stocker la liste des fichiers ignorés en dehors de votre arborescence Git, vous pouvez utiliser le fichier .git / info / exclude . Il est appliqué uniquement à votre paiement du repo.
la source
~/.gitignore
afin qu'ils soient ignorés pour tout référentiel sur lequel je travaille.git update-index --assume-unchanged <file>
pour arrêter le suivi des modifications sans modifier votre référentiel. Ceci est très utile sur les grands projets partagés où vous devez apporter des modifications locales, mais personne d'autre ne veut voir vos trucs engagés dans le dépôt. Voir blog.pagebakers.nlVous pouvez en fait mettre une ligne
.gitignore
dans votre.gitignore
fichier. Cela entraînerait l'.gitignore
ignorance du fichier par git. Je ne pense pas que ce soit une bonne idée. Je pense que le fichier ignoré devrait être contrôlé et suivi. Je mets juste ça là pour être complet.la source
git rm --cached .gitignore
Vous pouvez également avoir un
.gitignore
fichier git utilisateur global qui s'appliquera automatiquement à tous vos dépôts. Ceci est utile pour les fichiers IDE et éditeur (par exempleswp
et les*~
fichiers pour Vim). Modifiez l'emplacement des répertoires en fonction de votre système d'exploitation.Ajoutez à votre
~/.gitconfig
fichier:Créez un
~/.gitignore
fichier avec des modèles de fichiers à ignorer.Enregistrez vos fichiers de points dans un autre référentiel afin d'avoir une sauvegarde (facultative).
Chaque fois que vous copiez, initiez ou clonez un dépôt, votre fichier gitignore global sera également utilisé.
la source
Si quelqu'un a déjà ajouté un
.gitignore
à votre référentiel, mais que vous souhaitez y apporter des modifications et ignorer ces modifications, procédez comme suit:git update-index --assume-unchanged .gitignore
Source .
la source
.git/info/excludes
.--assume-unchanged
. Pourquoi est-ce meilleur que l'autre?.git/info/excludes
ne fonctionne pas si le fichier est déjà suivi.Après avoir ajouté
.gitignore
et validé le fichier, il n'apparaîtra plus dans la liste des "fichiers non suivis".la source
Au cas où quelqu'un d'autre aurait la même douleur que nous. Nous voulions exclure un fichier qui avait déjà été validé.
Ce message était beaucoup plus utile: travailler avec .git / info / exclude trop tard
Plus précisément, ce dont vous avez besoin pour ignorer un fichier est en fait utiliser la commande git remove Voir git rm ( http://www.kernel.org/pub/software/scm/git/docs/git-rm.html )
vous le testez en allant
git rm --dry-run *.log
(si vous dites vouloir exclure tous les fichiers journaux)
cela produira ce qui serait exclu si vous l'exécutiez.
puis
vous l'exécutez en allant
git rm *.log
(ou tout autre chemin / expression de nom de fichier que vous souhaitez)
Ajoutez ensuite une
*.log
ligne à votre.gitignore
fichier.la source
git status
s'ils apparaissent à l'avenir.Bien sûr, le fichier .gitignore apparaît sur l'état, car il n'est pas suivi, et git le voit comme un nouveau fichier savoureux à manger!
Cependant, comme .gitignore est un fichier non suivi, c'est un candidat à ignorer par git lorsque vous le mettez dans .gitignore!
Donc, la réponse est simple: il suffit d'ajouter la ligne:
dans votre fichier .gitignore!
Et, contrairement à la réponse d'Août, je dois dire que ce n'est pas que le fichier .gitignore devrait être dans votre référentiel. Il se trouve que cela peut , ce qui est souvent pratique. Et c'est probablement vrai que c'est la raison pour laquelle .gitignore a été créé comme une alternative à .git / info / exclude, qui n'a pas la possibilité d'être suivi par le référentiel. En tout cas, la façon dont vous utilisez votre fichier .gitignore dépend entièrement de vous.
Pour référence, consultez la page de manuel gitignore (5) sur kernel.org.
la source
L'idée est de mettre des fichiers spécifiques à votre projet dans le
.gitignore
fichier et (comme déjà mentionné) de l'ajouter au référentiel. Par exemple.pyc
et.o
fichiers, les journaux créés par la suite de tests, certains appareils, etc.Pour les fichiers que votre propre configuration crée mais qui n'apparaîtront pas nécessairement pour chaque utilisateur (comme les
.swp
fichiers si vous utilisez vim, les répertoires ecplise cachés et autres), vous devez utiliser.git/info/exclude
(comme déjà mentionné).la source
Tout d'abord, comme beaucoup d'autres l'ont déjà dit, votre
.gitignore
devrait être suivi par Git (et ne devrait donc pas être ignoré). Laissez-moi vous expliquer pourquoi.(TL; DR: validez le
.gitignore
fichier et utilisez un global.gitignore
pour ignorer les fichiers créés par votre IDE ou votre système d'exploitation)Git est, comme vous le savez probablement déjà, un système de contrôle de version distribué . Cela signifie qu'il vous permet de basculer entre les différentes versions (même si le développement a divergé en différentes branches) et qu'il permet également à plusieurs développeurs de travailler sur le même projet.
Bien que le suivi de votre
.gitignore
ait également des avantages lorsque vous basculez entre des instantanés, la raison la plus importante pour la valider est que vous souhaiterez partager le fichier avec d'autres développeurs qui travaillent sur le même projet. En validant le fichier dans Git, les autres contributeurs obtiendront automatiquement le.gitignore
fichier lorsqu'ils cloneront le référentiel, de sorte qu'ils n'auront pas à s'inquiéter de la validation accidentelle d'un fichier qui ne devrait pas être validé (comme les fichiers journaux, les répertoires de cache, les informations d'identification de la base de données , etc.). Et si à un moment donné le projet.gitignore
est mis à jour, ils peuvent simplement récupérer ces modifications au lieu d'avoir à modifier le fichier manuellement.Bien sûr, il y aura certains fichiers et dossiers que vous voudrez ignorer, mais qui sont spécifiques à vous et ne s'appliquent pas aux autres développeurs. Cependant, ceux-ci ne devraient pas être dans le projet
.gitignore
. Il existe deux autres endroits où vous pouvez ignorer les fichiers et les dossiers:.gitignore
. L'avantage est que cela.gitignore
s'applique à tous les référentiels de votre ordinateur, vous n'avez donc pas à répéter cette opération pour chaque référentiel. Et il n'est pas partagé avec d'autres développeurs, car ils pourraient utiliser un système d'exploitation et / ou un IDE différent..gitignore
, ni au global.gitignore
, peuvent être ignorés à l'aide d' exclusions de référentiels explicites dansyour_project_directory/.git/info/exclude
. Ce fichier ne sera pas partagé avec d'autres développeurs et est spécifique à ce référentiel uniquela source
.gitignore
.gitignore
ne fonctionne que pour ignorer les fichiers qui ne sont pas encore suivis par Git. L'ajout d'un fichier déjà suivi.gitignore
ne vous empêchera pas de valider les modifications apportées à ce fichier. Même si cela était possible, comment commettriez-vous le changement.gitignore
quand il demande à Git de s'ignorer?Attention au "problème" suivant Parfois, vous voulez ajouter des répertoires mais aucun fichier dans ces répertoires. La solution simple consiste à créer un .gitignore avec le contenu suivant:
Cela semble fonctionner correctement jusqu'à ce que vous réalisiez que le répertoire n'a pas été ajouté (comme prévu dans votre référentiel. La raison en est que le .gitignore sera également ignoré, et donc le répertoire est vide. Ainsi, vous devriez faire quelque chose comme ceci :
la source
Cela semble fonctionner uniquement pour votre répertoire actuel pour pouvoir
Git
ignorer tous les fichiers du référentiel.mettre à jour ce fichier
avec votre joker ou votre nom de fichier
la source
Si vous avez déjà archivé .gitignore et que vous souhaitez ignorer les modifications apportées à celui-ci, consultez cette réponse :
la source
Dans mon cas, je souhaite exclure un fichier existant. Seule la modification de .gitignore ne fonctionne pas. J'ai suivi ces étapes:
De cette façon, j'ai nettoyé du cache le fichier que je voulais exclure et après l'avoir ajouté à .gitignore .
la source
Accédez au répertoire de base de votre dépôt git et exécutez la commande suivante:
Tous les fichiers de points seront ignorés, y compris ce .DS_Store embêtant si vous êtes sur un Mac.
la source
Il est tout à fait possible qu'un utilisateur final veuille que Git ignore le fichier ".gitignore" simplement parce que les dossiers spécifiques à l'IDE créés par Eclipse ne sont probablement pas les mêmes que NetBeans ou un autre IDE. Donc, pour garder le code source IDE antagoniste, il est facile d'avoir un git personnalisé ignoré qui n'est pas partagé avec toute l'équipe car les développeurs individuels peuvent utiliser différents IDE.
la source
.gitignore
consiste à ignorer les autres fichiers. git concerne les fichiers, il s'agit donc d'ignorer les fichiers. Cependant, comme git fonctionne sur des fichiers, ce fichier doit être là comme mécanisme pour lister les autres noms de fichiers.Si on l'appelait,
.the_list_of_ignored_files
cela pourrait être un peu plus évident.Une analogie est une liste de choses à faire que vous ne voulez PAS faire. À moins que vous ne les listiez quelque part, il y a une sorte de liste de choses à faire que vous ne connaîtrez pas à leur sujet.
la source
Je pense qu'il y a des situations où ignorer le .gitignore est très utile. Par exemple, lorsque vous avez plusieurs équipes ou une grande équipe travaillant sur la même base de code. Dans ce cas, vous devez avoir certaines conventions, l'une de ces conventions concerne ce qui est ignoré lors du dépôt git. Il s'agit généralement d'ignorer les fichiers et répertoires créés par IDE ou OS, certains journaux générés, etc.
Cependant, il existe une force qui tend à introduire des modifications non conventionnelles au
.gitignore
fichier. Le.gitignore
fichier peut être modifié par une personne irresponsable, par erreur, par un outil utilisé, ou dans un autre cas.Pour avoir une contre-force à cela, nous pouvons faire comme suit:
.gitignore
fichier est " scellé " de cette façon.Le " scellé "
.gitignore
fichier peut être modifié, juste localement, sans propager ces changeurs aux autres membres de l'équipe. Cependant, si un changement est largement accepté dans toute l'équipe, il est possible de le «desceller», de le changer et de le «sceller» à nouveau. Cela ne peut pas être fait par erreur, uniquement intentionnellement.Malheureusement, vous ne pouvez pas être protégé à 100% contre la stupidité, mais de cette façon, vous avez fait tout votre possible pour éviter que des choses stupides ne se produisent.
Si vous avez une équipe relativement petite avec de très bons professionnels, cela ne serait pas important, mais même ces gars-là apprécieraient d'avoir une chose de moins à s'inquiéter.
L'utilisation
.git/info/exclude
est cool quand vous ne pouvez rien faire sur les paramètres d'infrastructure, il suffit de couvrir votre propre ** pour ne pas faire d'erreur.Du point de vue de ce qui est bien et de ce qui ne va pas, je vote pour avoir l'entrée .gitignore dans le
.gitignore
fichier, donnant à chacun la liberté de faire localement ce qu'il veut, mais pas d'envahir les autres.la source
J'ai trouvé que le meilleur endroit pour configurer un ignorer les
.DS_Store
fichiers embêtants est dans le.git/info/exclude
fichier.IntelliJ semble le faire automatiquement lorsque vous y installez un référentiel git.
la source