Quelle est la différence entre git add
, Push
et commit
?
Juste un peu confus venant de SVN, où "update" ajoutera "des trucs, et commit fera un" Push "et" ajoutera "aussi
Il existe différentes fonctions dans git. En espérant une explication de votre expérience.
git add
ajoute vos fichiers modifiés à la file d'attente afin qu'ils soient validés ultérieurement . Les fichiers ne sont pas validésgit 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
git Push
applique vos modifications au référentiel distant.
Ce chiffre de ce git cheat sheet donne une bonne idée du déroulement du travail
git add
ne figure pas sur la figure car la méthode suggérée de validation est la combinaison de git commit -a
, mais vous pouvez mentalement ajouter un git add
au bloc de modification pour comprendre le flux.
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 distribué et votre répertoire de travail local est votre référentiel! Toutes les modifications que vous avez validées sont immédiatement reflétées et enregistrées. Push
sert uniquement à mettre à jour le référentiel distant (que vous pouvez partager avec d'autres) lorsque vous avez terminé avec tout ce sur quoi vous travaillez. C’est un moyen astucieux de travailler et d’enregistrer les modifications localement (sans surcharge du réseau) et de ne les mettre à jour que lorsque vous le souhaitez, et non à chaque validation. Cela se traduit indirectement par des commits/branchements plus faciles, etc. (pourquoi pas, n'est-ce pas? Que cela vous coûte-t-il?), Ce qui conduit à davantage de points de sauvegarde, sans altérer le référentiel.
git add
sélectionne les modifications
git commit
enregistre les modifications LOCALEMENT
git Push
partage les changements
git add
ajoute des fichiers à l'index Git, qui est une zone de stockage intermédiaire 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).Afin de comprendre Git, il vous faudrait investir plus d’efforts que 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 vers Subversion, car la plupart d'entre elles n'ont pas de contrepartie directe.
J'étais confus à propos de ce que "vraiment" faisait. Je viens de lire un paragraphe très instructif du livre Git Pro que je voudrais ajouter ici, car il clarifie les choses
"Il s’avère que Git met en place un fichier exactement comme lors de l’exécution de la commande git add. Si vous validez maintenant, la version de benchmarks.rb telle qu'elle était lors de la dernière exécution de la commande git add indique comment elle sera intégrée à la validation, et non la version du fichier tel qu'il se présente dans votre répertoire de travail lors de l'exécution de git commit. Si vous modifiez un fichier après avoir exécuté git add, vous devez exécuter git add à nouveau pour afficher 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.
add indique à git de commencer à suivre un fichier.
commit valide vos modifications actuelles sur votre référentiel local
Push vous repousse local en amont.
Very Nice pdf à propos de nombreux secrets de GIT.
Add est identique à svn's add (il est parfois utilisé pour marquer le fichier comme résolu).
Commit est également identique à celui de svn, mais il valide les modifications dans votre référentiel local.