Qu’est-ce que .gitignore exactement?

Je viens de créer un repository Github et je me demandais à quoi .gitignore 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 repositorys en ont un. Dois-je en avoir un? Est-ce que je peux / ne fais que l’ignorer ou est-ce que ça l’utilise? J’ai fait des recherches sur le sujet mais je n’ai pas trouvé d’explication concrète.

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

Vous pouvez trouver tous les détails ici .

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

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

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

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

De plus, git status est l’une des commandes les plus fréquemment utilisées où vous souhaitez que git status répertorie les fichiers modifiés.

Vous voudriez que votre liste d’ git status soit propre des fichiers indésirables. Par exemple, j’ai modifié a.cpp, b.cpp, c.cpp, d.cpp & e.cpp Je souhaite que mon git status a.cpp, b.cpp, c.cpp, d.cpp & e.cpp les éléments suivants:

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

Je ne veux pas que git status les fichiers modifiés comme celui-ci avec les fichiers et fichiers object intermédiaires du dossier build

 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 l’ git status de git status afin de répertorier ces fichiers temporaires intermédiaires et de les engager accidentellement dans le repository, je devrais créer un .gitignore que tout le monde .gitignore . Tout ce que j’ai besoin de faire est de lister les fichiers et dossiers dans le .gitignore que je veux exclure de la .gitignore .

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

 /*.cmake /*.DS_Store /.user /build 

Il y a des fichiers que vous ne voulez pas que Git vérifie. Git considère chaque fichier de votre copie de travail comme l’une des trois choses suivantes:

  1. suivi – 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. ignoré – un fichier que Git a été explicitement dit d’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 ne devraient pas être validés autrement. Quelques exemples communs sont:

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

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