ndpsoftware - git pull
¿Cuáles son las diferencias entre "git commit" y "git push"? (15)
Básicamente, git commit
" registra los cambios en el repositorio ", mientras que git push
" actualiza las referencias remotas junto con los objetos asociados ". Entonces, el primero se usa en relación con su repositorio local, mientras que el último se usa para interactuar con un repositorio remoto.
Aquí hay una buena foto de Oliver Steele , que explica el modelo de git y los comandos:
Lea más sobre git push
y git pull
en GitReady.com (el artículo al que me referí primero)
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?
Bueno, básicamente git commit coloca sus cambios en su repositorio local, mientras que git push envía sus cambios a la ubicación remota. Dado que git es un sistema de control de versiones distribuido, la diferencia es que commit comprometerá los cambios en su repositorio local, mientras que push empujará los cambios hasta un repositorio remoto
fuente de Google
http://gitref.org/basic/ este enlace también será muy útil
Bueno, básicamente git commit coloca sus cambios en su repositorio local, mientras que git push envía sus cambios a la ubicación remota.
Dado que git es un sistema de control de versiones distribuido, la diferencia es que commit comprometerá los cambios en su repositorio local, mientras que push empujará los cambios hasta un repositorio remoto.
Es más fácil entender el uso de los comandos git add
y commit
si imagina que un archivo de registro se mantiene en su 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 de git pull
y la finalizo con una solicitud de 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 llevo a cabo y que requieren cambiar algunos archivos. 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
agrega archivos a la lista ''Índice de archivos modificados''. Este proceso también se denomina almacenamiento provisional y en realidad registra los archivos modificados y los cambios realizados. El comando git commit
registra / finaliza los cambios y la lista de índice correspondiente junto con un mensaje personalizado que se puede usar para referencias posteriores.
Recuerde que solo está cambiando la copia local de su repositorio y no la de Github. Después de esto, solo cuando haga un git push
haga todos estos cambios registrados, junto con sus archivos de índice para cada confirmación, inicie sesión en el repositorio principal (en Github).
Como ejemplo, para obtener la segunda entrada en ese archivo de registro imaginario, habría hecho:
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
permiten dividir un cambio en el repositorio principal en sub-cambios lógicos sistemáticos. Como otras respuestas y comentarios han señalado, hay, por supuesto, muchos más usos para ellos. Sin embargo, este es uno de los usos más comunes y un principio impulsor de que Git sea un sistema de control de revisión de múltiples etapas, a diferencia de otros populares como Svn.
Solo quiero añadir los siguientes puntos:
Yon no puede presionar hasta que se comprometa, ya que usamos git push
para empujar las confirmaciones realizadas en su sucursal 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>
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 ejecutamos el comando COMMIT por primera vez, se crea este Repositorio local. en el mismo lugar donde se encuentra nuestro directorio de trabajo,
Se crea el archivo Checkit (.git).
Después de eso, siempre que nos comprometamos, esto almacenará los cambios que realizamos en el archivo del Directorio de trabajo en el Repositorio local (.git)
3) Repositorio remoto ----- Este se encuentra fuera de nuestro sistema, como en servidores ubicados en cualquier parte del mundo. como github Cuando hacemos el comando PUSH, los códigos de nuestro repositorio local se almacenan en este repositorio remoto
Una analogía muy cruda: si comparamos el 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 fuera de este contexto: cometer y empujar no es nada como guardar un archivo editado y copiarlo. Dicho esto, debería ser válido solo por comparación.
en términos git commit
, git commit
es el paso antes de que git push
ejecutes en ese orden para que git con éxito tu archivo en github.
git commit no es más que guardar nuestros cambios oficialmente, por cada compromiso que enviemos un mensaje de confirmación, una vez que hayamos terminado con los compromisos, podemos hacerlo a distancia para ver nuestro cambio globalmente
lo que significa que podemos hacer numerosas confirmaciones antes de empujar a remoto (podemos ver la lista de confirmaciones ocurridas y los mensajes también) git guarda cada confirmación con id de confirmación, que es un código de 40 dígitos
y uso git push solo cuando quería ver mi cambio en el control remoto (allí veré si mi código funcionó en Jenkins)
git commit
es confirmar los archivos almacenados en el repositorio local. git push
es un avance rápido de la combinación de la rama maestra del lado local con la rama maestra remota. Pero la fusión no siempre tendrá éxito. Si aparece el rechazo, debes pull
para que puedas hacer un git push
exitoso.
git commit
registra sus cambios en el repositorio local .
git push
actualiza el repositorio remoto con sus cambios locales.
git push
se usa para agregar las confirmaciones que ha hecho en el repositorio local a un remoto, junto con git pull
, permite a las personas colaborar.
Cometer : {Instantánea | Changeset | Registro de historia | Versión | ''Guardar como''} de un repositorio. Repositorio de Git = serie (árbol) de confirmaciones (más algunas cosas adicionales).
Repositorio local : repositorio en su máquina.
Repositorio remoto : repositorio en un servidor (por ejemplo, Github ).
git commit
: Agrega un nuevo commit (último commit + modificaciones en etapas ) al repositorio local .
git push
, git pull
: sincroniza el repositorio local con un repositorio remoto . push
- aplicar cambios de local a remoto , pull
- aplicar cambios de remoto a local .
commit : añadiendo cambios al repositorio local
push : para transferir los últimos compromisos a un servidor remoto