Objetivo: mantener tu código local sincronizado con GitHub.
El problema:
La solución: push (tú → GitHub) y pull (GitHub → tú)
mkdir demo-github-sync && cd demo-github-sync
git init
echo "print('v1')" > app.py
echo "# Demo GitHub Sync" > README.md
git add . && git commit -m "Initial commit"
# Conectar con GitHub (sustituye por tu repo)
git remote add origin https://github.com/ton-username/demo-repo.git
# Primer push
git push -u origin main¡Eso es todo! Tu código está en GitHub.
Escenario típico:
# Modificas en local
echo "print('v2 updated')" > app.py
git add . && git commit -m "Update to v2"
# Enviar a GitHub
git push origin main# Recuperar los cambios del equipo
git pull origin main
# O en 2 pasos:
git fetch origin # Descargar sin fusionar
git merge origin/main # Fusionar después# Por la mañana: recuperar el trabajo del equipo
git pull
# Durante el día: desarrollas
echo "print('new feature')" >> app.py
git add . && git commit -m "Add feature"
# Por la noche: enviar tu trabajo
git pushConflicto = tú y un compañero modificáis la misma línea.
# Tu compañero ha modificado app.py en GitHub
# Tú también en local
echo "print('my version')" > app.py
git add . && git commit -m "My changes"
git pull # ¡CONFLICTO!# Git te muestra el conflicto en app.py:
# <<<<<<< HEAD
# print('my version')
# =======
# print('colleague version')
# >>>>>>> abc123
# Edita el archivo para quedarte con lo que quieras:
echo "print('merged version')" > app.py
# Cerrar la resolución:
git add app.py
git commit -m "Resolve conflict"
git pushConflicto resuelto. El equipo recupera tu versión fusionada.
| Comando | Acción |
|---|---|
git clone <url> | Copiar un repo de GitHub |
git remote add origin <url> | Conectar con GitHub |
git push -u origin main | Primer push (con tracking) |
git push | Enviar tus commits |
git pull | Recuperar + fusionar |
git fetch | Recuperar sin fusionar |
git status | Ver el estado de sincronización |
git pull (recuperar)git add + git commitgit push (compartir)Sincronizar con GitHub = la respiración del desarrollador: pull → code → push.