git ajouter tout sauf ignorer les fichiers dans le fichier .gitignore

120

J'ajoute le contrôle de source à un projet qui n'en avait pas. Le problème est qu'il y a beaucoup de fichiers à ajouter initialement à git avec un fichier .gitignore , mais je ne peux pas comprendre comment ajouter tous les fichiers sans inclure les fichiers correspondant à quelque chose dans le fichier .gitignore .

git add *

La commande ci-dessus n'ajoute aucun fichier car elle détecte les fichiers ignorés par .gitignore .

git add -f *

La commande ci-dessus ajoutera tous les fichiers, y compris les fichiers que je souhaite ignorer.

Alors, comment puis-je ajouter tous les fichiers tout en adhérant au fichier .gitignore ?

E-riche
la source

Réponses:

251

Je pense que vous voulez dire git add .qui ajoutera tous les fichiers au référentiel qui ne sont PAS spécifiés dans le .gitignore- vous pouvez voir ces changements en tapantgit status

Le .dans bash signifie généralement ce répertoire et tous les autres répertoires de manière récursive, donc si vous faites cela à partir du niveau inférieur de votre dépôt, vous devez ajouter tous les fichiers.

Mon flux git habituel consiste à créer le .gitignorefichier et à ajouter les fichiers de projet au dépôt. Je vais tester le .gitignorefichier en tapant git statusaprès l'importation des fichiers - si je vois les fichiers que j'ai ajoutés (par exemple uniquement .php ou .html, PAS .mp3 ou .mov), alors vous pouvez git add .tout ajouter, et git commit -m "initial commit"à les engager et vous devriez être prêt.

Nic
la source
3
et si je fais git add --all .quelle est la différence git add .dans ce contexte?
Katedral Pillon
2
c'est la même chose que git add.
user454232
27
git add .

Cela ajoutera tous les chemins et ignorera les correspondances de .gitignore

Leom Burke
la source
13

Essayez git add . (ce qui signifie "ajouter tous les fichiers dans le répertoire actuel et ci-dessous")

wadesworld
la source
5

Une autre option consiste à utiliser le excludefichier du dépôt Git . Ce fichier fonctionne de la même manière qu'un .gitignorefichier mais n'est pas validé dans le dépôt.

À partir de la documentation Github :

Vous pouvez utiliser cette technique pour les fichiers générés localement que vous ne vous attendez pas à ce que d'autres utilisateurs génèrent, tels que les fichiers créés par votre éditeur.

Utilisez votre éditeur de texte préféré pour ouvrir le fichier appelé .git/info/excludeà la racine de votre référentiel Git. Toute règle que vous ajoutez ici ne sera pas archivée et ignorera uniquement les fichiers de votre référentiel local.

  1. Dans Terminal, accédez à l'emplacement de votre référentiel Git
  2. À l'aide de votre éditeur de texte préféré, ouvrez le fichier .git/info/exclude
  3. Ajoutez des règles au excludefichier comme vous le feriez pour le .gitignorefichier
Brett DeWoody
la source