¿Cuál es la diferencia entre git add
, push
y commit
?
Solo un poco confuso viniendo de SVN, donde "actualizar" 'agregará' cosas, y la confirmación hace un "empujón" y también 'agregará'
Hay todas las funciones diferentes dentro de git. Esperando alguna explicación de su experiencia.
Respuestas:
git add
agrega sus archivos modificados a la cola para ser confirmados más tarde . Los archivos no están comprometidosgit commit
confirma los archivos que se han agregado y crea una nueva revisión con un registro ... Si no agrega ningún archivo, git no confirmará nada. Puedes combinar ambas acciones congit commit -a
git push
envía sus cambios al repositorio remoto.Esta figura de esta hoja de trucos de git da una buena idea del flujo de trabajo
git add
no está en la figura porque la forma sugerida de confirmar es la combinacióngit commit -a
, pero puede agregar mentalmente ungit add
al bloque de cambios para comprender el flujo.Por último, la razón por la que
push
es un comando separado es porgit
la filosofía de.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 actualizar el repositorio remoto (que puede compartir con otros) cuando haya terminado con lo que sea en lo que está trabajando. Esta es una forma ordenada de trabajar y guardar cambios localmente (sin sobrecarga de red) y actualizarlo solo cuando lo desee, en lugar de en cada confirmación. Esto indirectamente da como resultado confirmaciones / 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.fuente
git add
selecciona cambiosgit commit
registros de cambios LOCALMENTEgit push
comparte cambiosfuente
git add
agrega archivos al índice de Git, que es un área de preparación para los objetos preparados para ser confirmados.git commit
confirma los archivos del índice en el repositorio,git commit -a
es un atajo para agregar primero todos los archivos rastreados modificados al índice.git push
envía todos los cambios pendientes al repositorio remoto al que está asignada su rama (por ejemplo, en GitHub).Para comprender Git, necesitaría invertir más esfuerzo que solo echar un vistazo a la documentación, pero definitivamente vale la pena. Simplemente no intente asignar los comandos de Git directamente a Subversion, ya que la mayoría de ellos no tienen una contraparte directa.
fuente
Estaba confundido acerca de lo que realmente hace 'agregar'. Acabo de leer un párrafo muy esclarecedor del libro Git Pro que me gustaría agregar aquí, porque aclara las cosas
“Resulta que Git prepara un archivo exactamente como está cuando ejecuta el comando git add. Si se compromete ahora, la versión de benchmarks.rb como estaba cuando ejecutó por última vez el comando git add es cómo entrará en la confirmación, no la versión del archivo como se ve en su directorio de trabajo cuando ejecuta git commit. Si modifica un archivo después de ejecutar git add, debe ejecutar git add nuevamente 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.
fuente
add le dice a git que comience a rastrear un archivo.
commit confirma sus cambios actuales en su repositorio local
push empuja su repositorio local en sentido ascendente.
fuente
Encuentro esta imagen muy significativa:
(de: Oliver Steele-My Git Workflow (2008) )
fuente
Muy buen pdf sobre muchos secretos de GIT.
Añadir es igual que add de svn (aunque a veces se usa para marcar el archivo como resuelto).
La confirmación también es la misma que la de svn, pero confirma el cambio en su repositorio local.
fuente
add -in git se usa para decirle a git qué archivos queremos confirmar, coloca los archivos en el área de prueba
commit- in git se usa para guardar archivos en la máquina local de modo que si hacemos algún cambio o incluso borramos los archivos, aún podamos recuperar nuestros archivos comprometidos
push: si guardamos nuestros archivos en la máquina local, es probable que se pierdan si nuestra máquina local se pierde, se daña, etc., para mantener nuestros archivos seguros o para compartir nuestros archivos, por lo general, queremos mantener nuestros archivos en un lugar remoto. repositorio como Github. Para ahorrar en repositorios remotos usamos push
ejemplo Preparar un archivo llamado index.html git add index.html
Confirmación de un archivo que está preparado git commit -m 'nombre de su confirmación'
Enviar un archivo a Github git push origin master
fuente