web-dev-qa-db-fra.com

Qu'est-ce que c'est exactement .gitignore?

Je viens de créer un référentiel Github et je me demandais à quoi servait le fichier .gitignore. J'ai commencé par ne pas en créer un, mais en ai ajouté un en raison du fait que la plupart des référentiels en ont un ... Est-ce que je dois en avoir un? Puis-je/dois-je simplement l'ignorer, ou a-t-il une utilisation? J'ai fait des recherches sur le sujet mais je n'ai pas pu trouver d'explication concrète.

172
Zahachos

.gitignore indique à git quels fichiers (ou patterns) il doit ignorer. Il est généralement utilisé pour éviter de valider des fichiers transitoires de votre répertoire de travail qui ne sont pas utiles pour d'autres collaborateurs, tels que des produits de compilation, des fichiers temporaires créés par des IDE, etc.

Vous pouvez trouver les détails complets ici .

138
Mureinik

C'est une liste de fichiers que git doit ignorer dans votre répertoire de travail.

Supposons que vous soyez sur un Mac et que vous avez des fichiers .DS_Store dans tous vos répertoires. Vous voulez que git les ignore, donc vous ajoutez .DS_Store en tant que ligne dans .gitignore. Etc.

Les documents git vous diront tout ce que vous devez savoir: http://git-scm.com/docs/gitignore

32
Andy Lester

Lorsque vous effectuez une validation, vous ne souhaitez pas inclure accidentellement des fichiers temporaires ou créer des dossiers spécifiques. Par conséquent, utilisez un .gitignore qui répertorie les éléments que vous souhaitez ignorer lors de la validation.

En outre, il est important de noter que git status est l’une des commandes les plus fréquemment utilisées pour laquelle vous souhaitez que git status répertorie les fichiers modifiés. 

Vous voudriez que votre liste git status paraisse propre à partir de fichiers indésirables. Par exemple, j'ai modifié a.cpp, b.cpp, c.cpp, d.cpp & e.cpp Je souhaite que mon git status répertorie les éléments suivants:

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp

Je ne veux pas que git statusrépertorie les fichiers modifiés comme celui-ci avec les fichiers d'objet intermédiaires et les fichiers du dossier de construction

git status
a.cpp
b.cpp
c.cpp
d.cpp
e.cpp
.DS_Store
/build/program.o
/build/program.cmake

Par conséquent, pour me libérer de git status afin d’énumérer ces fichiers temporaires intermédiaires et de les enregistrer accidentellement dans le dépôt, je devrais créer un .gitignore que tout le monde fait. Tout ce que je dois faire est de lister les fichiers et dossiers dans le .gitignore que je veux exclure de la validation.

Voici mon .gitignore pour éviter de valider des fichiers inutiles

/*.cmake
/*.DS_Store
/.user
/build
10
Game_Of_Threads

Il y a des fichiers sur lesquels Git ne veut pas s'enregistrer. Git considère chaque fichier de votre copie de travail comme l'une des trois choses suivantes:

  1. suivi - un fichier qui a déjà été mis en scène ou validé;
  2. non suivi - un fichier qui n'a pas été mis en scène ou commis; ou
  3. ignored - un fichier que Git a été explicitement invité à ignorer.

Les fichiers ignorés sont généralement des artefacts construits et des fichiers générés par une machine qui peuvent être dérivés de votre source de référentiel ou qui ne doivent pas autrement être validés. Voici quelques exemples courants:

  • caches de dépendances, tels que le contenu de /node_modules ou /packages
  • code compilé, tel que les fichiers .o, .pyc et .class
  • construire des répertoires de sortie, tels que /bin, /out ou /target
  • fichiers générés au moment de l'exécution, tels que .log, .lock ou .tmp
  • fichiers système cachés, tels que .DS_Store ou Thumbs.db
  • fichiers de configuration personnels IDE, tels que .idea/workspace.xml

Les fichiers ignorés sont suivis dans un fichier spécial appelé .gitignore qui est archivé à la racine de votre référentiel. Il n'y a pas de commande git ignore explicite: le fichier .gitignore doit être édité et validé manuellement lorsque vous avez de nouveaux fichiers à ignorer. Les fichiers .gitignore contiennent des modèles qui correspondent aux noms de fichier de votre référentiel afin de déterminer s'ils doivent ou non être ignorés. Voici un sample.gitignore file . Pour plus de détails, regardez ce link

7
imk

L'objectif principal de .gitignore - vous évitez ainsi d'ajouter vos mots de passe, etc. à Git

Ne faites pas confiance à vos secrets sur Internet

Github est sur internet. Si vous mettez votre code sur Internet (par exemple, sur Github), vous devez alors vous assurer que vous n’y mettez aucun élément compromettant, par exemple. mots de passe, ou des informations d'identification de sécurité, ou des secrets. Bien sûr, Github a la sécurité, mais que se passe-t-il si cette sécurité est compromise? Vous ne voulez pas compromettre toute la sécurité de votre application, simplement parce que la sécurité de Github est compromise. Quelle est alors la solution?

Demander à Git d'ignorer certains fichiers

Vous pouvez demander à git d’ignorer certains fichiers essentiels au fonctionnement de votre application (mots de passe ou secrets, par exemple). Ainsi, lorsque vous mettez votre code sur Internet, rien ne se passera, même si quelqu'un parvient à le voir. Et si vous travaillez sur un projet open source, là encore, il y a des choses que vous ne voulez tout simplement pas "vérifier dans git".

Tout ce qui se trouve dans le fichier .gitignore est alors ignoré par Git. C'est ce que tu veux!

0
BKSpurgeon