Git y GitHub: El Corazón del Desarrollo de Software Colaborativo
Arquitectura de Control de Versiones Distribuido, Estados de Archivos y Comandos Imprescindibles
En el ecosistema del desarrollo de software moderno, Git y GitHub son dos herramientas complementarias pero conceptualmente distintas que a menudo confunden a quienes inician en programación. Git es un sistema de control de versiones distribuido (DVCS) de código abierto que se ejecuta localmente en tu computadora para rastrear cada cambio en el historial de tu código. GitHub, en cambio, es una plataforma en la nube (propiedad de Microsoft) que hospeda repositorios Git remotos, facilitando la colaboración en equipo, revisiones de código mediante Pull Requests, CI/CD con GitHub Actions y gestión de incidencias.
En la Tecnología Real (Explicación Sencilla)
feature/oauth2, haces commits periódicos para guardar puntos de restauración y experimentas con seguridad sin tocar la versión funcional. Todo esto ocurre en tu disco duro sin necesidad de conexión a Internet. - GitHub en el equipo: Al terminar tu función, haces un git push hacia GitHub. Tus compañeros de equipo reciben una notificación, revisan el código línea por línea en la web, dejan comentarios, se ejecutan pruebas automáticas con GitHub Actions y finalmente se fusiona (merge) al proyecto principal.Explicación Técnica: Los 4 Ámbitos de Git
Para comprender Git con precisión matemática, es fundamental entender sus cuatro áreas de almacenamiento:
git add).| Aspecto | Git (El Motor Local) | GitHub (La Plataforma en la Nube) |
|---|---|---|
| Tipo de software | Herramienta CLI de línea de comandos local | Plataforma web SaaS en la nube |
| Conectividad requerida | 100% offline (sin conexión a Internet) | Requiere conexión a Internet |
| Función principal | Registrar snapshots de cambios y ramificación | Hospedar repositorios remotos y colaboración |
| Características clave | Commits, merges, rebase, diff, logs | Pull Requests, Issues, CI/CD Actions, Wiki |
Chuleta de Comandos Esenciales de Git
# ── 1. INICIALIZACIÓN Y CONFIGURACIÓN ──git init # Inicializa un nuevo repositorio Git localgit clone https://github.com/u/repo # Clona un repositorio remoto completogit config --global user.name "Tu Nombre"git config --global user.email "tu@email.com" # ── 2. CICLO DIARIO DE TRABAJO ──git status # Consulta el estado del directorio de trabajo y staginggit diff # Compara las diferencias no preparadasgit add archivo.js # Agrega un archivo específico al área de preparacióngit add . # Agrega todos los archivos modificadosgit commit -m "feat: login con jwt" # Guarda un snapshot con mensaje descriptivo # ── 3. RAMAS Y NAVEGACIÓN ──git branch # Lista todas las ramas localesgit checkout -b feature/nueva-rama # Crea y se posiciona en una nueva ramagit switch feature/nueva-rama # Alternativa moderna para cambiar de ramagit merge feature/nueva-rama # Fusiona la rama indicada en la rama actual # ── 4. SINCRONIZACIÓN REMOTA CON GITHUB ──git remote add origin https://... # Vincula el repositorio local con GitHubgit pull origin main # Descarga y fusiona los cambios más recientesgit push -u origin main # Sube tus commits locales al servidor remoto # ── 5. DESHACER CAMBIOS CON SEGURIDAD ──git restore archivo.js # Descarta modificaciones no preparadasgit stash # Guarda temporalmente cambios sucios en memoriagit stash pop # Recupera los cambios guardados del stashgit log --oneline --graph # Muestra el árbol de historial simplificadoNota Técnica
.env a un repositorio público en GitHub. Configura siempre un archivo .gitignore antes de realizar tu primer commit.Glosario Rápido
Mini Cuestionario Interactivo3 preguntas
Selecciona una opción para autoevaluarte al instante. La respuesta se califica de inmediato.
¿Cuál es la diferencia fundamental entre Git y GitHub?
¿Qué comando traslada los archivos modificados al área de preparación (Staging Area)?
¿Por qué es crucial crear un archivo .gitignore en la raíz de tu proyecto?
Diagnóstico y Práctica en Arostik
Prueba expresiones regulares para ignorar archivos y validar ramas con nuestro Probador de Expresiones Regulares.