Git: append vs pousser vs valider

Quelle est la différence entre git add , push et commit ?

Juste un peu confus venant de SVN, où “update” appenda des choses, et commit fait un “push” et appenda aussi

Il y a toutes les différentes fonctions dans git. En espérant une explication de votre expérience.

  1. git add ajoute vos fichiers modifiés à la file d’ attente pour qu’ils soient validés ultérieurement . Les fichiers ne sont pas validés
  2. git commit valide les fichiers ajoutés et crée une nouvelle révision avec un journal … Si vous n’ajoutez aucun fichier, git ne commettra rien. Vous pouvez combiner les deux actions avec git commit -a

  3. git push pousse vos modifications vers le référentiel distant.

Cette figure de cette feuille de sortingche git donne une bonne idée du déroulement du travail

entrer la description de l'image ici

git add n’est pas sur la figure car la méthode suggérée pour valider est la combinaison git commit -a , mais vous pouvez append mentalement un git add au bloc de modification pour comprendre le stream.

Enfin, la raison pour laquelle push est une commande distincte est due à la philosophie de git . git est un système de gestion de versions dissortingbué et votre répertoire de travail local est votre référentiel! Toutes les modifications que vous commettez sont instantanément répercutées et enregistrées. push n’est utilisé que pour mettre à jour le repo distant (que vous pourriez partager avec d’autres) lorsque vous en avez fini avec quoi que ce soit sur lequel vous travaillez. C’est un bon moyen de travailler et d’enregistrer les modifications localement (sans surcharge du réseau) et de les mettre à jour uniquement lorsque vous le souhaitez, plutôt qu’à chaque validation. Cela entraîne indirectement des commits / twigments plus faciles, etc. (pourquoi pas, à quoi cela vous coûte-t-il?), Ce qui conduit à plus de points de sauvegarde, sans perturber le repository.

git add sélectionne les changements

git commit des changements de changements LOCALEMENT

git push part des changements

  • git add ajoute des fichiers à l’index Git, qui est une zone de transfert pour les objects 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 append 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 twig est mappée (par exemple, sur GitHub).

Pour comprendre Git, vous devez investir plus d’efforts que de simplement consulter la documentation, mais cela en vaut vraiment la peine. N’essayez pas de mapper les commandes Git directement sur Subversion, car la plupart d’entre elles n’ont pas de contrepartie directe.

J’étais confus au sujet de ce que fait vraiment l’ajout. Je viens de lire un paragraphe très instructif du livre Git Pro que je voudrais append ici, car il clarifie les choses

«Git met en scène un fichier exactement comme lorsque vous exécutez la commande git add. Si vous vous engagez maintenant, la version de benchmarks.rb telle qu’elle était la dernière fois que vous avez exécuté la commande git add explique comment elle sera placée dans la validation, 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 relancer 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 copyright.

Très beau pdf sur de nombreux secrets GIT.

Ajouter est identique à l’ajout de svn (il est parfois utilisé pour marquer un fichier résolu).

Commit est également identique à svn’s, mais il valide la modification dans votre référentiel local.

add indique à git de commencer à suivre un fichier.

commit valide vos modifications en cours sur votre référentiel local

Poussez vous repo local en amont.