Flujo Básico de Trabajo con Git
Esta sección te enseña el flujo de trabajo esencial que necesitas para trabajar con Git en el día a día, especialmente cuando trabajas en múltiples máquinas.
🚀 Primer Setup: Subir proyecto por primera vez
Section titled “🚀 Primer Setup: Subir proyecto por primera vez”Cuando tienes un proyecto local y quieres subirlo a GitHub por primera vez:
# 1. Inicializar repositorio local (si no lo has hecho)git init
# 2. Agregar todos los archivosgit add .
# 3. Hacer el primer commitgit commit -m "Primer commit: proyecto inicial"
# 4. Verificar que todo está biengit status
# 5. Crear la rama main y moverse a ellagit branch -M main
# 6. Conectar con repositorio remoto en GitHubgit remote add origin https://github.com/tu-usuario/tu-repositorio.git
# 7. Subir por primera vezgit push -u origin main
# El -u establece el tracking, después solo necesitarás: git push origin main🔄 Flujo Diario: Subir cambios desde tu máquina principal
Section titled “🔄 Flujo Diario: Subir cambios desde tu máquina principal”Cuando ya tienes tu proyecto configurado y quieres subir cambios:
# 1. Ver qué archivos han cambiadogit status
# 2. Agregar archivos específicos O todosgit add archivo.txt # Archivo específicogit add . # Todos los archivos
# 3. Hacer commit con mensaje descriptivogit commit -m "Descripción clara de los cambios"
# 4. Subir cambios al repositorio remotogit push origin main # o git push origin nombre-de-tu-rama
# ¡Listo! Tus cambios están en GitHub📥 Descargar proyecto en otra máquina
Section titled “📥 Descargar proyecto en otra máquina”Cuando quieres trabajar en una máquina diferente por primera vez:
# 1. Clonar el repositorio completogit clone https://github.com/tu-usuario/tu-repositorio.git
# 2. Entrar al directorio del proyectocd tu-repositorio
# 3. Verificar que todo está biengit statusgit log --oneline
# ¡Ya tienes todo el proyecto en esta máquina!🔄 Flujo entre máquinas: Sincronizar cambios (descargar cambios)
Section titled “🔄 Flujo entre máquinas: Sincronizar cambios (descargar cambios)”Escenario: Trabajaste en la Máquina A, subiste cambios, ahora quieres trabajar en la Máquina B.
# 1. Antes de empezar a trabajar, descargar últimos cambios git pull
# Esto es equivalente a: # git fetch + git merge
# 2. Verificar que tienes la última versión git log --oneline -5
# 3. Ahora puedes trabajar con la versión más reciente# 1. Hacer tus cambios en los archivos # ... editar archivos ...
# 2. Ver qué cambios hiciste git status git diff
# 3. Agregar y commitear git add . git commit -m "Cambios realizados en Máquina B"
# 4. Subir cambios git push origin main # o git push origin nombre-de-tu-rama# 1. En Máquina A, descargar los cambios de Máquina B git pull
# 2. Continuar trabajando con la versión actualizada # ... hacer más cambios ...
# 3. Subir nuevos cambios git add . git commit -m "Más cambios desde Máquina A" git push origin main # o git push origin nombre-de-tu-rama📋 Comandos Esenciales - Cheat Sheet
Section titled “📋 Comandos Esenciales - Cheat Sheet”# Ver estado actual git status
# Agregar archivos git add . # Todos los archivos git add archivo.txt # Archivo específico git add *.js # Todos los .js
# Hacer commit git commit -m "Mensaje descriptivo"
# Subir cambios git push origin main # o git push origin nombre-de-tu-rama
# Descargar cambios git pull
# Ver historial git log --oneline# Ver diferencias git diff # Cambios no agregados git diff --staged # Cambios agregados
# Ver historial detallado git log # Historial completo git log --oneline -10 # Últimos 10 commits git log --graph # Con gráfico de ramas
# Ver ramas git branch # Ramas locales git branch -a # Todas las ramas
# Ver remotos git remote -v # Ver repositorios remotos# Deshacer cambios no guardados git checkout -- archivo.txt # Deshacer cambios en un archivo git checkout . # Deshacer todos los cambios
# Quitar archivos del staging git reset archivo.txt # Quitar archivo específico git reset # Quitar todos los archivos
# Deshacer último commit (mantener cambios) git reset --soft HEAD~1
# Ver qué pasó (historial de comandos) git reflog🎯 Flujo Completo: Ejemplo Real
Section titled “🎯 Flujo Completo: Ejemplo Real”Imagina que trabajas en casa y en la oficina. Aquí tienes el flujo completo:
En Casa - Lunes por la mañana:
Terminal window git pull # Descargar últimos cambiosecho "nueva función" >> app.js # Trabajar en el códigogit add .git commit -m "Agregada nueva función de login"git push origin main # Subir cambios (o git push origin nombre-de-tu-rama)En la Oficina - Lunes por la tarde:
Terminal window git pull # Descargar cambios de casaecho "fix bug" >> app.js # Corregir un buggit add .git commit -m "Corregido bug en función de login"git push origin main # Subir corrección (o git push origin nombre-de-tu-rama)En Casa - Martes por la mañana:
Terminal window git pull # Descargar corrección de oficinaecho "tests" >> test.js # Agregar testsgit add .git commit -m "Agregados tests para login"git push origin main # Subir tests (o git push origin nombre-de-tu-rama)
⚠️ Problemas Comunes y Soluciones
Section titled “⚠️ Problemas Comunes y Soluciones”Problema: git push dice que hay cambios remotos
# Solución: Descargar cambios primero git pull
# Si hay conflictos, Git te ayudará a resolverlos # Después de resolver conflictos: git add . git commit -m "Resueltos conflictos" git push origin main # o git push origin nombre-de-tu-ramaProblema: Trabajaste sin hacer git pull primero
# Si no has hecho commit aún: git stash # Guardar cambios temporalmente git pull # Descargar cambios git stash pop # Recuperar tus cambios
# Si ya hiciste commit: git pull --rebase # Reorganizar commitsProblema: Git rechaza archivo muy grande
# Ver qué archivos están siendo agregados git status
# Quitar archivo grande del staging git reset archivo-grande.zip
# Agregar archivo al .gitignore echo "archivo-grande.zip" >> .gitignore git add .gitignore git commit -m "Ignorar archivos grandes"