Différence entre “git add” et “git add .”
La commande git add [--all|-A]
semble être identique à git add .
. Est-ce correct? Si non, comment sont-ils différents?
Vous devez vous connecter pour publier un commentaire.
La commande git add [--all|-A]
semble être identique à git add .
. Est-ce correct? Si non, comment sont-ils différents?
Vous devez vous connecter pour publier un commentaire.
Cette réponse s'applique uniquement aux Git version 1.x. Pour Git version 2.x, voir les autres réponses.
Résumé:
git add -A
étapes toutes les modificationsgit add .
stades de nouveaux fichiers et des modifications, sans suppressionsgit add -u
étapes de modification et de suppression, sans nouveaux fichiersDétail:
git add -A
est équivalent àgit add .; git add -u
.Le point important à propos de
git add .
est qu'il ressemble à l'arbre de travail et ajoute tous les chemins de la mise en scène des changements s'ils sont modifiés ou nouveaux et pas ignoré, il n'a pas les 'rm' actions.git add -u
regarde toutes les déjà suivi des fichiers et des étapes les modifications apportées à ces fichiers si ils sont différents ou si elles ont été supprimées. Il ne pas ajouter de nouveaux fichiers, il ne les étapes des changements de suivi des dossiers.git add -A
est un raccourci pratique pour faire à la fois de ceux-ci.Vous pouvez tester les différences avec quelque chose qui ressemble à ceci (notez que pour Git version 2.x de votre sortie pour
git add .
git status
sera être différents):git add *
?git add -A -p
ne fonctionne pas comme on pourrait s'y attendre (demander de manière interactive sur sans traces de fichiers)--all :/
. Est-ce répondre à besoin d'être mis à jour pour les changements récents dans l'API pour inclure ` :/` ?git add -A :/
ougit add -A .
git add -a
, casquettes questiongit add -u
est devenugit add -u :/
avec ce dernier paramètre étant un chemin d'accès, vous permettant d'-u certains répertoires,:/
gère l'ensemble de l'arbre.git add -u
ougit add .
et, ce faisant, il rend sa vie plus facile, même après prise en compte de l'extra-mentale de l'impôt ajoutés à s'assurer qu'il n'y a pas de problème de synchronisation? Je me demande pourquoi Git n'a pas d'autres personnes splitadd -u
en deux ordres distinctsadd -u1
etadd-u2
lequel on travaille pour les fichiers commençant par les chiffres et l'autre pour les fichiers de départ avec les chiffresgit add .
t ajouter des fichiers supprimés dans votre copie de travail. Ils obtiennent mise en scène comme supprimé.Voici le tableau pour la compréhension rapide:
Git Version 1.x:
Git Version 2.x:
De longs drapeaux:
git add -A
est équivalent àgit add --all
git add -u
est équivalent àgit add --update
Pour en savoir plus:
git diff-files -z --diff-filter=M --name-only | xargs -0 git add
pour ajouter uniquement les fichiers modifiés, mais pas les nouveaux fichiers ou les suppressions.git add .
seulement ajoute de nouveaux fichiers qui sont sur le chemin d'accès actuel. I. e. si vous avez un nouveau répertoire../foo
,git add -A
en scène d'elle,git add .
ne sera pas.git add .
est équivalent àgit add -A .
, ce qui est équivalent àgit add "*"
Avec Git 2.0,
git add -A
est le répertoire par défaut:git add .
est égal àgit add -Un .
.git add
est commegit add :/
(ajouter de tout, des repo git dossier).Notez que git 2.7 (Nov. 2015) vous permettra d'ajouter un dossier nommé "
:
"!Voir s'engager 29abb33 (25 Oct 2015) par Junio C Hamano (
gitster
).Noter que départ git 2.0 (T1 ou T2 2014), quand on parle de
git add .
(chemin d'accès actuel à l'intérieur de l'arbre de travail), vous devez utiliser '.
dans les autresgit add
commandes.Qui signifie:
(Note la plus
.
" pourgit add -A
etgit add -u
)Parce que
git add -A
ougit add -u
serait exploitée (à partir de git 2.0 uniquement) sur le ensemble de l'arbre de travail, et pas seulement sur le chemin d'accès actuel..
. Inclus dans ma compilation suradd
sur RU.DONC.De Charles instructions, après essai de mon projet de compréhension serait comme suit:
Ce blog pourrait également être utile de comprendre dans quelle situation ces commandes peuvent être appliquées: La suppression des Fichiers Supprimés à partir de votre Git Répertoire de Travail.
Un distillée plus rapide réponse:
Fait les deux ci-dessous (le même que git add --tous les)
Stades de + fichiers modifiés
Étapes modifié + fichiers supprimés
git add :/
+git add -u :/
Les choses ont changé avec Git 2.0:
-A
est maintenant par défaut--ignore-removal
git add -u
etgit add -A
dans un sous-répertoire sans chemins sur la ligne de commande fonctionne sur l'ensemble de l'arbreDonc pour git 2 la réponse est:
git add .
etgit add -A .
ajouter nouveau/modifié/supprimé des fichiers dans le répertoire courantgit add --ignore-removal .
ajoute de nouvelles/modifiées des fichiers dans le répertoire courantgit add -u .
ajoute modifié/supprimé des fichiers dans le répertoire courantDans Git 2.x:
Si vous êtes situé directement à la répertoire de travail, puis
git add -A
etgit add .
travail sans la différence.Si vous êtes dans un sous répertoire de la répertoire de travail,
git add -A
va ajouter tous les fichiers de l'ensemble de la répertoire de travail, etgit add .
va ajouter des fichiers à partir de votre répertoire courant.Et c'est tout.
Enfin je pense que je reçois ce, un grand merci à vous tous. J'espère que cela peut ajouter un peu plus de clarté.
Limiteurs peuvent être -u ou -Un ou nul.
Pathspec peut être un chemin d'accès ou point '.' pour indiquer le répertoire courant.
Important de connaissances de base sur la façon git 'ajoute'.
Maintenant, étant donné que la connaissance, nous pouvons appliquer les réponses ci-dessus.
Les limiteurs sont comme suit.
La pathspec est comme suit.
git add -A .
git add -u .
En conclusion, ma politique est ;
git add .
est égal àgit add -A .
ajoute des fichiers d'index, actuelles et les enfants des dossiers.git add -A
ajoute des fichiers d'index de tous les dossiers de travail de l'arbre.P. S.: l'information se rapporte à Git 2.0.
L'option-A ajoute, modifie et supprime les entrées d'index pour correspondre à l'arbre de travail.
Dans GIT 2 la
-A
option par défaut est maintenant.Lorsqu'un
.
est ajouté, ce qui limite la portée de la mise à jour du répertoire vous êtes, comme par le Git documentationUne chose que je voudrais ajouter c'est que si le
--interactive
ou-p
mode est utilisé, la commande git add va se comporter comme si la mise à jour (-u
) drapeau a été utilisé et ne pas ajouter de nouveaux fichiersLes deux
git add .
etgit add -A
mettra en scène tous les nouveaux, modifiés et supprimés des fichiers dans les versions plus récentes degit
.La différence est que
git add -A
étapes de fichiers "de plus en plus courant et les sous-répertoires" qui appartiennent à votre dépôt git. Mais faire ungit add .
seuls stades fichiers dans le répertoire courant et ses sous-répertoires suivants (PAS les fichiers se trouvant à l'extérieur c'est à dire plus de répertoires).Voici un exemple:
Si votre répertoire de travail actuel est
/my-repo
, et vous nerm rootfile.txt
, puiscd subfolder
, suivie pargit add .
, il ne sera PAS le stade du fichier supprimé. Mais celagit add -A
sera certainement en scène ce changement, peu importe où vous effectuez la commande à partir de.Espère que cela efface la différence.