Git ajouter tous les fichiers modifiés, supprimés et non suivis?

256

Existe-t-il un moyen d'ajouter tous les fichiers, peu importe ce que vous leur faites, qu'ils soient supprimés, non suivis, etc.? comme pour un commit. Je ne veux tout simplement pas avoir à git addou git rmtous mes fichiers à chaque fois que je valide, surtout quand je travaille sur un gros produit.

INSANENEIVIESIS
la source

Réponses:

307

Essayer:

git add -A

Avertissement: à partir de git 2.0 (mi-2013), cela mettra toujours en scène les fichiers sur l'ensemble de l'arborescence de travail .
Si vous souhaitez placer des fichiers sous le chemin actuel de votre arborescence de travail, vous devez utiliser:

git add -A .

Voir aussi: Différence de git add -Aetgit add .

Kilanash
la source
cela n'a pas fonctionné pour moi ... comment puis-je montrer mon entrée-sortie de terminal dans cette discussion? copier-coller la sortie de mon terminal comme réponse à cette discussion?
Rakib
voici le problème auquel je suis confronté - stackoverflow.com/q/7726131/636762 - veuillez m'aider sur celui-ci s'il vous plaît
Rakib
Cela peut également ne pas fonctionner si votre version git est ancienne. J'exécutais un script sur un serveur qui exécutait git 1.5.2.5. git add -A ne fonctionnait pas. À partir du script, aucun message d'erreur n'a été signalé. Ce n'est qu'à partir de la ligne de commande que j'ai trouvé que -A n'était pas une option légale à ajouter.
Éponyme du
mais pourquoi dois-je ajouter des fichiers chaque fois que je veux faire un commit!? Chaque fois que j'ai apporté des modifications à un fichier, je dois l'ajouter.
Frade
3
Voilà comment fonctionne Git. Vous devez ajouter des modifications à votre zone de transit avant de la valider. Par exemple, vous pouvez ajouter uniquement certains fichiers à une validation et fournir des commentaires à sa place, au lieu de tous les fichiers à tout moment. Voici une explication pratique de ce que cela fait et pourquoi: gitready.com/beginner/2009/01/18/the-staging-area.html
Kilanash
75

Essayer

git add -u

L' uoption " " signifie mise à jour. Cela mettra à jour le dépôt et supprimera réellement les fichiers du dépôt que vous avez supprimés dans votre copie locale.

git add -u [filename]

pour effectuer une suppression vers un seul fichier. Une fois poussé, le fichier ne sera plus dans le dépôt.

Alternativement,

git add -A .

est équivalent à

git add .

git add -u .

Notez l'extra '.' sur git add -Aetgit add -u


Avertissement: à partir de git 2.0 (mi-2013), cela mettra toujours en scène les fichiers sur l'ensemble de l'arborescence de travail .
Si vous souhaitez placer des fichiers sous le chemin actuel de votre arborescence de travail, vous devez utiliser:

git add -A .

Voir aussi: Différence de git add -Aetgit add .

Matt Kneiser
la source
42

La réponse suivante s'applique uniquement à Git version 1.x, mais à Git version 2.x.

Vous voulez git add -A:

git add -A toutes les étapes;

git add . étapes nouvelles et modifiées, sans suppression;

git add -u étapes modifiées et supprimées, sans nouvelles.

thebr0ken
la source
Notez que ce qui précède ne s'applique qu'à Git 1.x. Pour git version 2.x, git add -Aest équivalent à git add .. Voir ici pour plus de discussions.
jdhao
27

git add --all ou git add -A ou git add -A . étapes toutes

git add . Étapes nouvelles et modifiées mais sans suppression

git add -u Étapes modifiées et supprimées mais sans nouvelles

git commit -aSignifie git add -uetgit commit -m "message"

Après avoir écrit cette commande, procédez comme suit: -

  1. presse i
  2. écrivez votre message
  3. presse esc
  4. presse :wq
  5. presse enter

git add <list of files> ajouter un fichier spécifique

git add *.txt ajouter tous les fichiers txt dans le répertoire courant

git add docs/*/txt ajouter tous les fichiers txt dans le répertoire docs

git add docs/ ajouter tous les fichiers dans le répertoire docs

git add "*.txt"ou git add '*.txt'ajoutez tous les fichiers de l'ensemble du projet

akshay_rahar
la source
12

Je ne sais pas s'il ajoutera des fichiers supprimés, mais à git add .partir de la racine, ajoutera tous les fichiers non suivis.

bcherry
la source
voir ma réponse sur la façon d'ajouter des fichiers supprimés
Matt Kneiser
5

Ceci est mon alternative (dans n'importe quel bash):

$ git status -s|awk '{ print $2 }'|xargs git add

Réinitialiser

$ git status -s|awk '{ print $2 }'|xargs git reset HEAD
Giacomo Tesio
la source
5

J'ai écrit le projet G2, un environnement convivial pour les amoureux de la ligne de commande git.
Veuillez obtenir le projet de github - G2 https://github.com/orefalo/g2

Il a un tas de commandes pratiques, dont l'une est exactement ce que vous recherchez: freeze

gel - Gel de tous les fichiers dans le référentiel (ajouts, suppressions, modifications) dans la zone de mise en scène, mise en scène ainsi que le contenu à inclure dans le prochain commit. Acceptez également un chemin spécifique comme paramètre

Olivier Refalo
la source
5

Pour une version plus récente de Git.

J'ai essayé git add -Aet cela m'a incité,

avertissement: Le comportement de 'git add --all (ou -A)' sans argument de chemin depuis un sous-répertoire de l'arbre changera dans Git 2.0 et ne devrait plus être utilisé. Pour ajouter du contenu pour l'arborescence entière, exécutez:

git add --all: / (ou git add -A: /)

Pour restreindre la commande au répertoire en cours, exécutez:

git add --all. (ou git ajouter -A.)

Avec la version actuelle de Git, la commande est limitée au répertoire courant.


Ensuite, j'ai essayé ci-dessous qui fonctionnait .

git add --all :/
Parag Tyagi
la source
3

Depuis la documentation Git à partir de la version 2.0:

Pour ajouter du contenu pour l'arborescence entière, exécutez:

git add --all :/

ou

git add -A :/

Pour restreindre la commande au répertoire en cours, exécutez:

git add --all .

ou

git add -A .
HOKBONG
la source
2

J'utilise la ligne suivante pour ajouter pour le transfert de tous les fichiers modifiés et nouvellement créés, à l'exception de ceux répertoriés dans .gitignore:

git add $(git ls-files -mo --exclude-standard)

(la syntaxe $ () est pour le shell bash). Je suppose que l'option de ligne de commande -mod devrait également ajouter les fichiers supprimés ... Ou, si vous avez des noms de fichiers avec des blancs incorporés, le one-liner suivant devrait faire l'affaire:

git ls-files -z --deleted --modified --others --exclude-standard | xargs -0 git add
Maurizio Loreti
la source