Git: agregar vs push vs commit
¿Cuál es la diferencia entre git add
, push
y commit
?
Solo un poco confundido viniendo de SVN, donde" update "'agregará' cosas, y commit hace un" push " y 'agregará' también
Hay diferentes funciones dentro de git. Esperando alguna explicación de tu experiencia.
6 answers
-
git add
agrega sus archivos modificados a la cola para ser confirmados más tarde. Los archivos no están comprometidos git commit
confirma los archivos que se han añadido y crea una nueva revisión con un registro... Si no agregas ningún archivo, git no confirmará nada. Puede combinar ambas acciones congit commit -a
git push
empuja los cambios al repositorio remoto.
Esta figura de esta hoja de trucos de git da una buena idea de la flujo de trabajo
git add
no está en la figura porque la forma sugerida de confirmar es el git commit -a
combinado, pero puedes agregar mentalmente un git add
al bloque de cambio para entender el flujo.
Por último, la razón por la que push
es un comando separado es debido a la filosofía de git
. git
es un sistema de control de versiones distribuido, y su directorio de trabajo local es su repositorio! Todos los cambios que realice se reflejan y registran instantáneamente. push
solo se usa para actualice el repositorio remoto (que puede compartir con otros) cuando haya terminado con lo que sea que esté trabajando. Esta es una forma ordenada de trabajar y guardar los cambios localmente (sin sobrecarga de red) y actualizarlos solo cuando lo desee, en lugar de en cada confirmación. Esto indirectamente resulta en commits/ramificaciones más fáciles, etc. (¿por qué no, verdad? ¿cuánto te cuesta?) lo que conduce a más puntos de guardado, sin interferir con el repositorio.
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-09-09 15:04:48
git add
selecciona cambios
git commit
registra cambios LOCALMENTE
git push
cambios en las acciones
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-03 05:16:27
-
git add
agrega archivos al índice Git, que es un área de ensayo para los objetos preparados para ser comprometidos. -
git commit
confirma los archivos en el índice al repositorio,git commit -a
es un atajo para agregar primero todos los archivos de seguimiento modificados al índice. -
git push
envía todos los cambios pendientes al repositorio remoto al que está asignada tu rama (p. ej. en GitHub).
Con el fin de entender Git que tendría que invertir más esfuerzo que solo echar un vistazo a la documentación, pero definitivamente vale la pena. Simplemente no intente asignar comandos Git directamente a Subversion, ya que la mayoría de ellos no tienen una contraparte directa.
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
2011-05-26 18:27:59
Estaba confundido acerca de lo que 'add' realmente hace. Acabo de leer un párrafo muy esclarecedor del libro Git Pro que me gustaría añadir aquí, porque aclara las cosas
"Resulta que Git prepara un archivo exactamente como es cuando ejecutas el comando git add. Si confirmas ahora, la versión de benchmarks.rb tal como fue la última vez que ejecutaste el comando git add es cómo entrará en el commit, no la versión del archivo como se ve en tu directorio de trabajo cuando ejecutas git commit. Si modificar un archivo después de ejecutar git add, tienes que ejecutar git add de nuevo para preparar la última versión del archivo: "
Extracto De: Chacon, Scott. "Pro Git."Springer, 2009-08-19T00:00:00+00:00. iBooks. Este material puede estar protegido por derechos de autor.
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-11-10 17:22:06
Muy bonito pdf sobre muchos secretos de GIT.
Add es lo mismo que add de svn (como a veces se usa para marcar archivo resuelto).
Commit también es lo mismo que svn , pero confirma el cambio en su repositorio local.
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-28 23:16:33
Add le dice a git que comience a rastrear un archivo.
Commit confirma sus cambios actuales en su repositorio local
Push te empuja al repositorio local hacia arriba.
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
2011-05-26 18:27:44