Git Sync con GitHub

1 min

Tabla de contenidos

  1. Sincronizar local ↔ GitHub
  2. Configuración rápida
  3. Flujo push/pull
  4. Gestión de conflictos
  5. Comandos esenciales

1. Sincronizar local ↔ GitHub

Objetivo: mantener tu código local sincronizado con GitHub.

El problema:

  • Codificas en local
  • El equipo modifica en GitHub
  • ¿Cómo mantenerte al día?

La solución: push (tú → GitHub) y pull (GitHub → tú)

Volver a la tabla de contenidos

2. Configuración rápida

bash
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.

Volver a la tabla de contenidos

3. Flujo push/pull

Escenario típico:

Push: tú → GitHub

bash
# Modificas en local
echo "print('v2 updated')" > app.py
git add . && git commit -m "Update to v2"

# Enviar a GitHub
git push origin main

Pull: GitHub → tú

bash
# 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

Flujo cotidiano

bash
# 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 push

Volver a la tabla de contenidos

4. Gestión de conflictos

Conflicto = tú y un compañero modificáis la misma línea.

Simulación de conflicto:

bash
# 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!

Resolución:

bash
# 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 push

Conflicto resuelto. El equipo recupera tu versión fusionada.

Volver a la tabla de contenidos

5. Comandos esenciales

ComandoAcción
git clone <url>Copiar un repo de GitHub
git remote add origin <url>Conectar con GitHub
git push -u origin mainPrimer push (con tracking)
git pushEnviar tus commits
git pullRecuperar + fusionar
git fetchRecuperar sin fusionar
git statusVer el estado de sincronización

Flujo de base:

  1. git pull (recuperar)
  2. Desarrollar + git add + git commit
  3. git push (compartir)
  4. Repeat!

Sincronizar con GitHub = la respiración del desarrollador: pull → code → push.

Volver a la tabla de contenidos