web-dev-qa-db-fra.com

Quelles sont les différences entre "git commit" et "git Push"?

Dans un tutoriel Git que je suis en train de parcourir, git commit est utilisé pour stocker les modifications apportées. 

À quoi sert git Push alors?

782
ben

En gros, git commit "enregistre les modifications dans le référentiel" tandis que git Push "met à jour les références distantes avec les objets associés". Ainsi, le premier est utilisé en connexion avec votre référentiel local, tandis que le second est utilisé pour interagir avec un référentiel distant.

Voici une belle image de Oliver Steele , qui explique le modèle git et les commandes:

Git data transport commands

En savoir plus sur git Push et git pull sur GitReady.com (l'article dont j'ai parlé en premier)

1466
tanascius

commit : ajout de modifications au référentiel local 

Push : pour transférer le (s) dernier (s) commit (s) sur un serveur distant

177
TheHippo

Eh bien, fondamentalement, git commit place vos modifications dans votre référentiel local, tandis que git Push les envoie à l’emplacement distant.

52
markovuksanovic

git Push est utilisé pour ajouter les commits que vous avez effectués sur le référentiel local à un autre distant. Avec git pull, il permet aux utilisateurs de collaborer.

25
Michael Borgwardt

Puisque git est un système de contrôle de version distribué, la différence est que commit engage les modifications dans votre référentiel local, tandis que Push transmet les modifications à un référentiel distant.

24
Justin Ethier

git commit enregistrez vos modifications dans le répertoire local

git Push update the remote repository avec vos modifications locales.

12
Naresh

Commit : {Snapshot | Changeset | Fiche de l'histoire | Version | 'Enregistrer-sous'} d'un référentiel. Dépôt Git = série (arbre) de commits (plus quelques choses supplémentaires).

Local repository: référentiel sur votre machine.

Remote repository: référentiel sur un serveur (par exemple, Github.com).

git commit: Ajouter un nouveau commit (dernier commit + staged modifications) au local repository.

git Push, git pull: Synchronisez un local repository avec son repertoire remote associé. Push - applique les modifications depuis local dans remote , pull - applique les modifications depuis remote dans local .

10
xged

Je veux juste ajouter les points suivants:

Yon ne peut pas pousser jusqu'à ce que vous validiez, car nous utilisons git Push pour pousser les commits effectués sur votre branche locale vers un référentiel distant.

La commande git Push prend deux arguments:

Un nom distant, par exemple, Origin Un nom de branche, par exemple, master.

Par exemple:

git Push  <REMOTENAME> <BRANCHNAME> 
git Push  Origin       master
5
Faisal Shaikh

Trois choses à noter:

1) Répertoire de travail ----- dossier où nos fichiers de codes sont présents

2) Répertoire local ------ Ceci est à l'intérieur de notre système. Quand nous faisons première fois COMMIT, ce référentiel local est créé. au même endroit où se trouve notre répertoire de travail,
Le fichier Checkit (.git) est créé.
Après cela, chaque fois que nous nous engageons, cela stockera le modifications apportées au fichier de répertoire de travail en Dépôt local (.git)

3) Référentiel distant ----- Ceci est situé en dehors de notre système, comme sur des serveurs situé n'importe où dans le monde. comme github . Quand nous faisons la commande Push, alors les codes de notre local le référentiel est stocké dans ce référentiel distant

4
DEVINDER THAKUR

Une analogie très grossière: si nous comparons git commit à l'enregistrement d'un fichier édité, alors git Push copiera ce fichier dans un autre emplacement.

S'il vous plaît, ne retirez pas cette analogie de ce contexte. Engager et pousser ne sont rien de plus que de sauvegarder et de copier un fichier édité. Cela dit, cela ne devrait servir qu'à des fins de comparaison.

3
amn

git commit n’est rien d’autre que la sauvegarde officielle de nos modifications, nous pouvons envoyer un message de validation à chaque message de validation.

ce qui signifie que nous pouvons faire de nombreux commits avant de pousser Push to remote (nous pouvons voir la liste des commits et les messages).

et j'utilise git Push uniquement quand je voulais voir mon changement de télécommande (après je vérifierai si mon code a fonctionné en jenkins)

0
Sai Koti

Il est plus facile de comprendre l'utilisation des commandes git add et commit si vous imaginez qu'un fichier journal est maintenu dans votre référentiel sous Github .

---------------- Day 1 --------------------
Message: Completed Task A
Index of files changed: File1, File2

Message: Completed Task B
Index of files changed: File2, File3
-------------------------------------------

---------------- Day 2 --------------------
Message: Corrected typos
Index of files changed: File3, File1
-------------------------------------------
...
...
...and so on

Je commence généralement ma journée par une requête git pull et la termine par une requête git Push. Ainsi, tout ce qui se trouve dans le compte rendu d'une journée correspond à ce qui se passe entre eux. Au cours de chaque journée, il y a une ou plusieurs tâches logiques que je complète et qui nécessitent de modifier quelques fichiers. Les fichiers édités lors de cette tâche sont répertoriés dans un index. 

Chacune de ces sous-tâches (les tâches A et B ici) sont des commits individuels. La commande git add ajoute des fichiers à la liste "Index des fichiers modifiés". Ce processus est également appelé mise en attente et en réalité, les enregistrements ont été modifiés et les modifications effectuées. La commande git commit enregistre/finalise les modifications et la liste d'index correspondante, ainsi qu'un message personnalisé pouvant être utilisé pour référence ultérieure. 

Rappelez-vous que vous ne modifiez que la copie locale de votre référentiel et non celle de Github. Après cela, ce n’est que lorsque vous faites un git Push que toutes ces modifications enregistrées, ainsi que vos fichiers d’index pour chaque commit, sont consignés dans le référentiel principal (sur Github).

Par exemple, pour obtenir la deuxième entrée de ce fichier journal imaginaire, j'aurais fait:

git pull
# Make changes to File3 and File4
git add File3 File4
# Verify changes, run tests etc..
git commit -m 'Corrected typos'
git Push

En bref, git add et git commit vous permettent de décomposer une modification du référentiel principal en sous-modifications logiques systématiques. Comme d'autres réponses et commentaires l'ont souligné, leur utilisation est bien plus fréquente. Cependant, c’est l’un des usages les plus courants et un principe fondamental qui explique que Git soit un système de contrôle de révision en plusieurs étapes, contrairement à d’autres systèmes populaires tels que Svn.

0
Cibin Joseph