¿Cuáles son las diferencias entre "git commit" y "git push"?


En un tutorial de Git que estoy revisando, git commit se usa para almacenar los cambios que has realizado.

¿Para qué se usa git push entonces?

Author: Asaprab, 2010-04-30

15 answers

Básicamente git commit "registra cambios en el repositorio " mientras git push "actualiza referencias remotas junto con objetos asociados". Por lo tanto, el primero se usa en conexión con su repositorio local, mientras que el segundo se usa para interactuar con un repositorio remoto.

Aquí hay una bonita imagen de Oliver Steele , que explica el modelo git y los comandos:

Comandos de transporte de datos Git

Lea más sobre git push y git pull en GitReady.com (el artículo I se refiere en primer lugar)

 1401
Author: tanascius,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-01 12:51:02

Commit : agregar cambios al repositorio local

Push : para transferir la(s) última (s) confirmación (es) a un servidor remoto

 162
Author: TheHippo,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-23 17:58:05

Bueno, básicamente git commit pone tus cambios en tu repositorio local, mientras que git push envía tus cambios a la ubicación remota.

 49
Author: markovuksanovic,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-30 14:21:32

git push se usa para agregar confirmaciones que haya realizado en el repositorio local a una remota-junto con git pull, permite que las personas colaboren.

 24
Author: Michael Borgwardt,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-03-18 05:41:04

Dado que git es un sistema de control de versiones distribuido, la diferencia es que commit confirmará los cambios en su repositorio local, mientras que push enviará los cambios a un repositorio remoto.

 23
Author: Justin Ethier,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-04-30 14:20:55

git commit registre sus cambios en el repositorio local.

git push actualice el repositorio remote con sus cambios locales.

 11
Author: Naresh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-04-23 17:56:38

Commit : {Snapshot | Changeset | History record | Version / 'Save-as'} de un repositorio. Git repository = series (tree) of commits (plus few extra things).

Local repository: repositorio en su máquina.

Remote repository: repositorio en un servidor (eg Github ).

git commit: Añadir un nuevo commit (último commit + modificaciones escalonadas ) al repositorio local .

git push, git pull: Sincroniza el repositorio local con un repositorio remoto. push - aplicar los cambios de locales en remoto, pull - aplicar cambios de remoto en locales.

 9
Author: xged,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-28 18:14:00

Solo queremos añadir los siguientes puntos:

Yon no puede empujar hasta que se confirme, ya que usamos git push para empujar las confirmaciones hechas en su rama local a un repositorio remoto.

El comando git push toma dos argumentos:

Un nombre remoto, por ejemplo, origin Un nombre de rama, por ejemplo, master

Por ejemplo:

git push <REMOTENAME> <BRANCHNAME>

 4
Author: Faisal Shaikh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-27 19:52:27

Tres cosas a tener en cuenta:

1)Directorio de Trabajo ----- carpeta donde están presentes nuestros archivos de códigos

2)Repositorio Local ------ Esto está dentro de nuestro sistema. Cuando hacemos la primera vez COMMIT comando entonces se crea este Repositorio Local. en el mismo lugar donde está nuestro directorio de trabajo ,
Checkit ( .git) se crea el archivo.
Después de eso cuando cada vez que nos comprometemos, esto almacenará el cambios que hacemos en el archivo del Directorio de trabajo a Repositorio local (.git)

3)Repositorio Remoto ----- Esto está situado fuera de nuestro sistema como en los servidores ubicado en cualquier parte del mundo . como github. Cuando hacemos PUSH comando entonces códigos de nuestro local repositorio se almacena en este remoto Repositorio

 3
Author: DEVINDER THAKUR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-16 16:08:11

Una analogía muy cruda: si comparamos git commit con guardar un archivo editado, entonces git push estaría copiando ese archivo a otra ubicación.

Por favor, no saque esta analogía de este contexto committing comprometerse y empujar no son nada como guardar un archivo editado y copiarlo. Dicho esto, debería ser válido solo para comparaciones.

 2
Author: amn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-26 19:11:56

En términos sencillos, git commit es el paso antes de que git push los ejecute en ese orden para enviar correctamente su archivo a github.

 0
Author: Zeal Murapa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-06-17 21:38:22

Git commit no es más que guardar nuestros cambios oficialmente, por cada confirmación que damos mensaje de confirmación, una vez que hayamos terminado con las confirmaciones, podemos enviarlas a distancia para ver nuestro cambio globalmente

Lo que significa que podemos hacer numerosas confirmaciones antes de enviar a remoto (podemos ver la lista de confirmaciones ocurridas y los mensajes también) git guarda cada commit con commit id, que es un código de 40 dígitos

Y utilizo git push solo cuando quería ver mi cambio en remoto (Allí después comprobaré si mi código funcionó en jenkins)

 0
Author: Sai Koti,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-20 07:49:19

Es más fácil entender el uso de los comandos de git add y commit si imaginas un archivo de registro que se mantiene en tu repositorio en Github. El archivo de registro de un proyecto típico para mí puede verse como:

---------------- 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

Normalmente comienzo mi día con una solicitud git pull y la termino con una solicitud git push. Así que todo dentro del registro de un día corresponde a lo que ocurre entre ellos. Durante cada día, hay una o más tareas lógicas que completo que requieren cambiar algunos archivos. El los archivos editados durante esa tarea se enumeran en un índice.

Cada una de estas sub-tareas(Tarea A y Tarea B aquí) son confirmaciones individuales. El comando git add añade archivos a la lista 'Index of Files Changed'. Este proceso también se llama staging y en realidad registra los archivos cambiados y los cambios realizados. El comando git commit registra/finaliza los cambios y la lista de índice correspondiente junto con un mensaje personalizado que puede usarse para referencia posterior.

Recuerda que todavía estás solo cambiando la copia local de tu repositorio y no la de Github. Después de esto, solo cuando haces un git push todos estos cambios registrados, junto con tus archivos de índice para cada confirmación, se registran en el repositorio principal(en Github).

Como ejemplo, para obtener la segunda entrada en ese archivo de registro imaginario, habría hecho: {[12]]}

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 pocas palabras, git add y git commit le permite desglosar un cambio en el repositorio principal en sub-cambios lógicos sistemáticos. Como otras respuestas y los comentarios han señalado que, por supuesto, tienen muchos más usos. Sin embargo, este es uno de los usos más comunes y un principio que impulsa a Git al ser un sistema de control de revisiones de múltiples etapas a diferencia de otros populares como Svn.

 0
Author: Cibin Joseph,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-15 16:43:51

git commit es confirmar los archivos que se almacenan en el repositorio local. git push es fusionar rápidamente la rama maestra del lado local con la rama maestra remota. Pero la fusión no siempre tendrá éxito. Si el rechazo aparece, usted tiene que pull para que pueda hacer un éxito git push.

 -3
Author: Marcus Thornton,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-08-12 08:56:26

Bueno, básicamente git commit pone tus cambios en tu repositorio local, mientras que git push envía tus cambios a la ubicación remota. Dado que git es un sistema de control de versiones distribuido, la diferencia es que commit confirmará los cambios en su repositorio local, mientras que push enviará los cambios a un repositorio remoto

Fuente Google

Http://gitref.org/basic / este enlace será muy útil también

Https://git-scm.com/docs/git-commit

 -3
Author: oroyo segun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-01 13:19:43