Maison > Questions et réponses > le corps du texte
S'il vous plaît, dites-moi la différence entre git commit -m et git commit -am
迷茫2017-05-02 09:38:32
Lorsque des modifications ont été ajoutées à git add <change file>
via stage
, un message git commit -m "<message>"
peut être ajouté via stage
pour toutes les modifications qui ont été saisies dans commit
. Qu'y a-t-il dans stage
? Voir ci-dessous
Si votre dossier a déjà été soumis, mais que cette fois les modifications n'ont pas été apportées stage
, comme suit :
Vous pouvez utiliser git commit -am "<message>"
directement pour ajouter toutes les modifications mais pas stage
les modifications à stage
et enregistrer les informations commit
. (Dans une certaine mesure, cela équivaut à la combinaison de git add
et git commit -m
, à condition que le fichier modifié soit déjà tracked
)
给我你的怀抱2017-05-02 09:38:32
git commit -am "str"
#等同于
git commit -a -m "str"
Exécutons-le
man git commit
pour obtenir la signification du paramètre a
et vous connaîtrez la différence.
OPTIONS
-a, --all
Dites à la commande de transférer automatiquement les fichiers qui ont été modifiés et >supprimés, mais les nouveaux fichiers dont vous n'avez pas informé Git ne sont pas affectés.
signifie
Mettez automatiquement tous les fichiers actuellement modifiés et supprimés sur la pile, mais ceux que vous n'avez pas ajoutés ne seront pas affectés.
Habituellement, lorsque nous soumettons git, c'est
git add .
git commit -m "some str"
git push
Ces trois grandes étapes, mais en fait, vous n'avez besoin que de deux commandes, à moins qu'il n'y ait de nouveaux fichiers à ajouter.
git commit -am "some str"
git push
伊谢尔伦2017-05-02 09:38:32
Expliqué littéralement, git commit -m est utilisé pour soumettre des fichiers dans la zone de préparation ; git commit -am est utilisé pour soumettre des fichiers suivis
Pour comprendre leurs différences, vous devez d'abord comprendre le cycle de changement d'état des fichiers de git, comme le montre la figure ci-dessous
Tous les fichiers du répertoire de travail sont dans ces deux états : suivis ou non suivis. Les fichiers suivis font référence aux fichiers qui ont été inclus dans la gestion du contrôle de version. Ils sont enregistrés dans le dernier instantané après avoir travaillé pendant un certain temps, leur statut peut ne pas être mis à jour, modifié ou placé dans la zone de préparation<🎜 >
Ce qui suit est un exempleLorsqu'un fichier tel que « a.txt » est ajouté au dossier du projet, le fichier est dans un état non suivi. Les fichiers au statut non suivi ne peuvent pas être soumis
À l'heure actuelle, si vous utilisez git commit -m 'add a.txt', vous pouvez le soumettre en douceur
Mais quelle est la différence entre git commit -m et git commit -am ? Cela dépend du traitement après modification du fichier a.txt
Ensuite, ajoutez le contenu 'a' à a.txt
Le fichier a.txt est suivi mais pas mis en scène. Pour le moment, si vous utilisez git commit -m, vous ne pouvez pas soumettre la dernière version de a.txt. Ce qui est soumis est uniquement l'ancienne version de a.txt avec un contenu vide au début
.
Pour soumettre une nouvelle version de a.txt, c'est-à-dire un.txt avec le contenu « a », vous devez utiliser git add a.txt pour placer la nouvelle version de a.txt dans la zone de stockage temporaire intermédiaire. , puis utilisez git commit -m pour valider
Si vous utilisez git commit -am, vous pouvez omettre l'étape git add a.txt, car git commit -am peut soumettre le fichier suivi, et a.txt a déjà été suivi depuis le début
Pour résumer, la clé de la différence entre l'utilisation de ces deux commandes est la commande git add
La commande git add est une commande multifonctionnelle selon l'état du fichier cible, l'effet de cette commande est également différent : vous pouvez l'utiliser pour commencer à suivre de nouveaux fichiers ou à placer les fichiers suivis dans le stockage temporaire. zone, et il peut également être utilisé pour fusionner Marquer les fichiers en conflit comme résolus, etc.
Nous devons utiliser la commande git add pour suivre les nouveaux fichiers, mais si vous utilisez git commit -am, vous pouvez omettre la fonction d'utilisation de la commande git add pour placer les fichiers suivis dans la zone de préparation