GitHub — clone, pull, fetch y push
La sincronización con GitHub tiene cuatro operaciones distintas. clone crea la copia inicial, fetch descarga referencias sin mezclar, pull descarga e integra y push publica commits que todavía solo existen localmente.
Copiar un repositorio: clone
Sección titulada «Copiar un repositorio: clone»git clone https://github.com/USUARIO/PROYECTO.gitgit clone --branch develop --single-branch <url> proyecto-developLa primera forma crea una carpeta con el nombre del repositorio. La segunda descarga una rama concreta y puede ser útil para proyectos grandes, aunque no tendrás todas las ramas locales disponibles.
Revisar antes de integrar: fetch
Sección titulada «Revisar antes de integrar: fetch»git fetch origingit log --oneline --decorate HEAD..origin/maingit diff HEAD..origin/mainfetch actualiza referencias como origin/main, pero no cambia tu rama, archivos ni staging. Es el paso más seguro cuando quieres saber qué llegó antes de decidir cómo integrarlo.
Traer cambios: pull
Sección titulada «Traer cambios: pull»git switch maingit pull --ff-only origin mainpull combina fetch con una integración. --ff-only permite avanzar solo si no hay divergencia y falla en vez de crear un merge automático inesperado. Si tu equipo prefiere rebase:
git pull --rebase origin mainAntes de hacer pull, guarda o confirma tus cambios locales. Un working tree sucio puede impedir la operación o provocar conflictos difíciles de leer.
Publicar cambios: push
Sección titulada «Publicar cambios: push»git pushgit push -u origin feature/perfilgit push origin mainLa primera publicación de una rama usa -u; después git push sabe qué remoto y rama seguir. Si Git rechaza el push porque alguien publicó primero, actualiza tu rama, resuelve conflictos y vuelve a probar:
git fetch origingit rebase origin/feature/perfilgit pushNo uses git push --force sobre ramas compartidas. Si reescribiste una rama propia, --force-with-lease comprueba que el remoto siga en el estado que viste antes de reemplazarlo.
Tabla mental
Sección titulada «Tabla mental»| Necesidad | Comando | ¿Modifica tu rama? |
|---|---|---|
| obtener una copia inicial | git clone | crea una nueva carpeta |
| mirar lo nuevo del remoto | git fetch | no |
| traer e integrar lo nuevo | git pull | sí |
| publicar commits locales | git push | cambia el remoto |
La documentación de GitHub sobre obtener cambios resume este mismo flujo.