2010-08-22 5 views
72

Quelle est la différence entre:git ajouter. vs git commit -a

  • git add .
  • git commit -a

dois-je faire les deux, ou est-ce superflu?

+2

voir aussi (pas exact dupliquer, cependant): http://stackoverflow.com/questions/572549/difference-of-git-add-a-and-git-add –

Répondre

99

git commit -a signifie presque [*] la même chose que git add -u && git commit.

Ce n'est pas la même chose que git add . car cela ajouterait des fichiers non-suivis qui ne sont pas ignorés, git add -u seulement les changements d'étapes (y compris les suppressions) aux fichiers déjà suivis.

[*] Il existe une différence subtile si vous n'êtes pas dans le répertoire racine de votre référentiel. git add -u étapes mises à jour aux fichiers dans le répertoire actuel et ci-dessous, il est équivalent à git add -u . tandis que git commit -a étapes et valide les modifications à tous les fichiers suivis.

+2

comportement dans [*] va changer dans git 2.0, par souci de cohérence. – user1284631

+2

Dans quelle direction? c'est-à-dire que vous allez commettre -a devenir comme ajouter -u, ou va ajouter -u devenir comme commettre -a? –

+3

@MilesRout: 'git add -u' deviendra comme' git commit -a'; vous devrez explicitement dire 'git add -u .' si c'est ce que vous voulez dire. –

13

git commit -a appelle automatiquement git add sur tous les fichiers qu'il connaît. Vous pouvez utiliser git add pour sélectionner les fichiers à valider. Consultez les documents pour plus d'informations: here

+8

* tous les fichiers qu'il connaît * sont très peu clairs pour moi, d'autant plus que ceux-ci n'étaient pas censés être ajoutés –

+0

@Nikana Reklawyks Vous avez la définition de "ajouter" faux. Ajouter ne veut pas dire la même chose que dans svn. Tout ce qu'il fait est de mettre à jour l'index. [Désolé pour la réponse lente, je ne me souviens pas d'avoir une notification pour ce commentaire] – alternative

+1

@alternative, Encore cette réponse peut faire mieux si vous ajoutez une clarification pour "tous les fichiers qu'il connaît" ..... – Pacerier