Guía de Git y GitHub para Principiantes
Guía de Git y GitHub para Principiantes: Comandos Esenciales que Debes Dominar

Si estás aprendiendo a programar, es probable que hayas oído hablar de Git y GitHub. Al principio, pueden parecer conceptos intimidantes, pero la realidad es que son herramientas fundamentales e innegociables en el día a día de cualquier desarrollador. Aprender a usarlos no es una opción, es un requisito. Git es el sistema que te permite guardar "fotografías" de tu código para no perder cambios y poder volver atrás en el tiempo, mientras que GitHub es la plataforma online donde alojás ese código para colaborar con otros. Esta guía desglosará todo lo que necesitás saber para empezar a usarlos hoy mismo.
Diferencia Clave: ¿Git vs. GitHub?
Para que quede claro de una vez por todas, usemos una analogía simple. Imagina que sos un fotógrafo:
- Git: Es tu cámara. Con ella tomás las fotos (guardás versiones de tu código), revisás las que ya tomaste y decidís cuáles conservar. Todo este proceso ocurre en tu computadora, de forma local. Es el software de control de versiones.
- GitHub: Es tu galería de arte online (como Instagram o Flickr). Es la plataforma web donde subís tus mejores fotos (tu código) para que otros las vean, dejen comentarios o incluso colaboren con vos en un proyecto. Es una plataforma para alojar y colaborar en repositorios de Git.
La Configuración Inicial (Solo la hacés una vez)
Antes de usar Git, tenés que decirle quién sos. Esto es importante porque cada "commit" (cada versión guardada) llevará tu firma. Abrí una terminal o línea de comandos en tu computadora y escribí estos dos comandos, reemplazando los datos de ejemplo con los tuyos:
git config --global user.name "Tu Nombre Completo"
git config --global user.email "tu.email@ejemplo.com"
Con eso, ya estás listo para empezar a versionar tus proyectos.
El Flujo de Trabajo Básico: Tus Primeros 5 Comandos Esenciales
El 90% del tiempo, vas a estar usando una combinación de estos cinco comandos. Entenderlos en orden es entender el flujo de trabajo fundamental de Git.
1. `git clone [URL]`
¿Qué hace? "Clona" o descarga una copia exacta de un repositorio de código que ya existe en GitHub a tu computadora. Es el primer paso cuando te unís a un proyecto existente o querés experimentar con el código de otra persona.
Ejemplo: `git clone https://github.com/usuario/proyecto-genial.git`
2. `git add [archivo]`
¿Qué hace? Después de modificar o crear archivos en tu proyecto, `git add` los prepara para ser guardados en la siguiente "fotografía" (commit). Es como poner los archivos en un área de preparación o "staging". Le estás diciendo a Git: "tené en cuenta los cambios de este archivo para el próximo guardado".
Ejemplo: `git add index.html` (para un archivo específico) o `git add .` (para preparar todos los archivos modificados, un atajo muy común).
3. `git commit -m "Mensaje"`
¿Qué hace? Toma la "fotografía". Guarda permanentemente los archivos que preparaste con `git add` en el historial de tu repositorio local. El `-m` seguido de un "Mensaje" es obligatorio y crucial: debe ser una descripción corta y clara de los cambios que hiciste. Este mensaje es tu legado para tu "yo" del futuro y para tus compañeros de equipo.
Ejemplo: `git commit -m "Agrega formulario de contacto a la página principal"`
4. `git push`
¿Qué hace? "Empuja" o sube todos los commits que hiciste en tu computadora local al repositorio remoto en GitHub. Este es el paso que sincroniza tu trabajo y lo hace visible para el resto del mundo o de tu equipo.
Ejemplo: `git push origin main` (donde 'main' es el nombre de la rama principal).
5. `git pull`
¿Qué hace? "Tira" o descarga los últimos cambios que existan en el repositorio de GitHub a tu computadora local. Es lo opuesto a `push` y es fundamental hacerlo siempre antes de empezar a trabajar para asegurarte de tener la versión más actualizada del código y evitar conflictos.
Ejemplo: `git pull origin main`
Las Ramas (Branches): Tu Superpoder para Trabajar sin Romper Nada
Imaginá que querés agregar una nueva sección a tu sitio web, pero no estás seguro si va a funcionar bien. No querés arruinar la versión principal que ya está online. Para eso existen las "ramas" (branches). Una rama es una línea de desarrollo independiente. Podés crear una rama, hacer todos tus experimentos en ella y, solo cuando estés seguro de que todo funciona, la "fusionás" (merge) con la rama principal (`main`). Este es el corazón del trabajo colaborativo y seguro en Git.
- `git branch [nombre-rama]`: Crea una nueva rama.
- `git checkout [nombre-rama]`: Te movés a esa rama para empezar a trabajar en ella.
- `git merge [nombre-rama]`: Estando en la rama principal, trae todos los cambios de la otra rama y los une.
Conclusión: La Práctica es la Única Vía
Al principio, este flujo puede parecer abstracto. La única forma de dominarlo es usándolo todos los días. Creá un repositorio en GitHub para cada proyecto que hagas, por más pequeño que sea. Hacé `add`, `commit` y `push` de tus cambios regularmente, incluso varias veces al día. Esta práctica no solo te dará una habilidad técnica indispensable, sino que también construirá un historial de tu trabajo en tu perfil de GitHub, que es una parte fundamental de tu portfolio de proyectos.