Quelle est la différence entre git add
, push
et commit
?
Juste un peu confus venant de SVN, où "update" "ajoutera" des choses, et commit fait un "push" et "ajoutera" aussi
Il y a toutes les fonctions différentes dans git. En espérant une explication de votre expérience.
Réponses:
git add
ajoute vos fichiers modifiés à la file d' attente pour être validés ultérieurement . Les fichiers ne sont pas validésgit commit
valide les fichiers qui ont été ajoutés et crée une nouvelle révision avec un journal ... Si vous n'ajoutez aucun fichier, git ne validera rien. Vous pouvez combiner les deux actions avecgit commit -a
git push
transmet vos modifications au référentiel distant.Ce chiffre de cette feuille de triche git donne une bonne idée du flux de travail
git add
n'est pas sur la figure car la méthode suggérée pour valider est la combinaisongit commit -a
, mais vous pouvez ajouter mentalement ungit add
au bloc de modification pour comprendre le flux.Enfin, la raison pour laquelle
push
est une commande séparée est à cause degit
la philosophie de.git
est un système de versionnage distribué, et votre répertoire de travail local est votre référentiel! Tous les changements que vous engagez sont instantanément reflétés et enregistrés.push
n'est utilisé que pour mettre à jour le référentiel distant (que vous pourriez partager avec d'autres) lorsque vous avez terminé ce sur quoi vous travaillez. C'est une manière intéressante de travailler et d'enregistrer les modifications localement (sans surcharge du réseau) et de les mettre à jour uniquement lorsque vous le souhaitez, au lieu de chaque validation. Cela se traduit indirectement par des commits / branchements plus faciles, etc.la source
git add
sélectionne les modificationsgit commit
enregistre les changements LOCALEMENTgit push
partage les changementsla source
git add
ajoute des fichiers à l'index Git, qui est une zone de préparation pour les objets prêts à être validés.git commit
valide les fichiers de l'index dans le référentiel,git commit -a
est un raccourci pour ajouter d'abord tous les fichiers suivis modifiés à l'index.git push
envoie toutes les modifications en attente au référentiel distant auquel votre branche est mappée (par exemple sur GitHub).Pour comprendre Git, vous devrez investir plus d'efforts que de simplement jeter un coup d'œil sur la documentation, mais cela en vaut vraiment la peine. N'essayez simplement pas de mapper les commandes Git directement à Subversion, car la plupart d'entre elles n'ont pas d'équivalent direct.
la source
J'étais confus sur ce que fait vraiment «ajouter». Je viens de lire un paragraphe très instructif du livre Git Pro que j'aimerais ajouter ici, car il clarifie les choses
«Il s'avère que Git met en scène un fichier exactement tel qu'il est lorsque vous exécutez la commande git add. Si vous vous engagez maintenant, la version de benchmarks.rb telle qu'elle était lors de la dernière exécution de la commande git add est la manière dont elle ira dans le commit, pas la version du fichier telle qu'elle apparaît dans votre répertoire de travail lorsque vous exécutez git commit. Si vous modifiez un fichier après avoir exécuté git add, vous devez réexécuter git add pour mettre en scène la dernière version du fichier: "
Extrait de: Chacon, Scott. «Pro Git.» Springer, 2009-08-19T00: 00: 00 + 00: 00. iBooks. Ce matériel peut être protégé par le droit d'auteur.
la source
add dit à git de commencer à suivre un fichier.
commit valide vos modifications actuelles sur votre référentiel local
push pousse votre dépôt local en amont.
la source
Je trouve cette image très significative:
(extrait de: Oliver Steele -My Git Workflow (2008) )
la source
Très beau pdf sur de nombreux secrets GIT.
Add est identique à l'ajout de svn (cependant, il est parfois utilisé pour marquer le fichier résolu).
La validation est également la même que celle de svn, mais elle valide la modification dans votre référentiel local.
la source
add -in git est utilisé pour dire à git quels fichiers nous voulons valider, il place les fichiers dans la zone de préparation
commit- in git est utilisé pour enregistrer les fichiers sur la machine locale afin que si nous apportons des modifications ou même supprimons les fichiers, nous pouvons toujours récupérer nos fichiers validés
push - si nous validons nos fichiers sur la machine locale, ils sont toujours susceptibles d'être perdus si notre machine locale est perdue, endommagée, etc., pour garder nos fichiers en sécurité ou pour partager nos fichiers, nous voulons généralement conserver nos fichiers sur une télécommande référentiel comme Github. Pour enregistrer sur des référentiels distants, nous utilisons push
exemple Mise en place d'un fichier nommé index.html git add index.html
Commettre un fichier qui est préparé git commit -m 'nom de votre commit'
Pousser un fichier vers Github git push origin master
la source