git fetch: descargar sin mezclargit pull: descargar y mezclargit push: subir cambiosUn remoto es simplemente un nombre corto asociado a la URL de
otro repositorio. Al clonar, Git crea automáticamente un remoto
llamado origin apuntando al repositorio del que se clonó.
git remote -vLista los remotos configurados y sus URLs.
git remote add nombre URLAgrega un nuevo remoto.
git fetch: descargar sin mezclar ¶git fetch origin
Descarga los commits y referencias nuevas del remoto, actualizando
las ramas de seguimiento remoto (por ejemplo,
origin/main), pero sin modificar ninguna rama local
ni el directorio de trabajo. Es la operación más segura para
enterarse de qué cambió en el remoto antes de decidir qué hacer con
esa información.
git pull: descargar y mezclar ¶git pull
Equivale a hacer git fetch seguido de una fusión (o, según la
configuración, un rebase) entre la rama local y su rama de
seguimiento remoto correspondiente. Es conveniente pero combina dos
pasos en uno, lo que puede sorprender si el remoto tiene cambios que
generan conflicto.
git push: subir cambios ¶git push origin main
Envía los commits de la rama local main al remoto
origin, siempre que el remoto pueda aplicar esos commits como
un avance rápido de su propia rama. Si el remoto tiene commits que
la copia local no tiene, push es rechazado, y hace falta
primero traer esos cambios (fetch/pull) e integrarlos.
git push --force-with-lease
Sobrescribe la rama remota con la versión local, aunque eso implique
descartar commits que estaban solo en el remoto. Es necesario
después de reescribir historia local (por ejemplo, tras un
rebase o un commit --amend de un commit ya subido:
see Reescribir la historia). --force-with-lease es más
seguro que --force a secas: falla si alguien más subió
cambios al remoto desde la última vez que se sincronizó, evitando
sobrescribir trabajo ajeno sin darse cuenta.
Una rama local puede configurarse para "seguir" a una rama remota,
de forma que git pull y git push sepan con cuál
sincronizar sin especificarlo cada vez. Al hacer
git switch -c rama origin/rama, Git configura este
seguimiento automáticamente.