Git y GitHub: guía paso a paso para principiantes

Dominar el desarrollo de software hoy en día no solo implica saber escribir código en un lenguaje de programación; también requiere saber gestionarlo. Aquí es donde entran en juego Git y GitHub, dos herramientas que, aunque suelen confundirse, cumplen funciones distintas pero complementarias. Si alguna vez has guardado versiones de un archivo como "proyecto_final.v1", "proyecto_final_final.v2" o "proyecto_final_ahora_si_que_si", Git es la solución definitiva a tus problemas. En esta guía, vamos a desglosar desde cero qué son estas herramientas, cómo instalarlas y cómo completar tu primer flujo de trabajo profesional para que puedas empezar a colaborar en proyectos de cualquier escala.
¿Qué es Git y por qué es imprescindible?
Git es un sistema de control de versiones distribuido. Fue creado en 2005 por Linus Torvalds (el creador de Linux) y su función principal es registrar los cambios realizados en los archivos de un proyecto a lo largo del tiempo. Imagina que es una "máquina del tiempo" para tu código: puedes volver atrás si algo se rompe, comparar versiones y trabajar en nuevas funciones sin alterar la base principal del software.
Control de versiones local vs. distribuido
A diferencia de los sistemas antiguos, Git es distribuido. Esto significa que cada desarrollador tiene una copia completa del historial del proyecto en su propio ordenador. No dependes de un servidor central para consultar el historial o realizar cambios (aunque uses GitHub para compartir esos cambios después).
Beneficios clave de usar Git
- Seguridad: Es casi imposible perder código si se usa Git correctamente.
- Ramificación (Branching): Permite crear "ramas" para experimentar. Si la idea no funciona, borras la rama y el proyecto principal queda intacto.
- Trazabilidad: Sabrás exactamente quién cambió qué línea de código, cuándo y por qué.
Diferencias fundamentales entre Git y GitHub
Es común que los principiantes utilicen ambos términos como sinónimos, pero son entidades diferentes. Comprender esta distinción es el primer paso para usarlos correctamente.
- Git es la herramienta: Es el software que instalas en tu ordenador para gestionar las versiones de tus archivos localmente. Funciona a través de la línea de comandos (terminal) o interfaces gráficas.
- GitHub es la plataforma: Es un servicio en la nube que aloja repositorios de Git. Piensa en él como el "Instagram" o el "Dropbox" de los programadores. Permite subir tu código a internet, compartirlo con otros y colaborar de forma masiva en proyectos de código abierto.
Existen alternativas a GitHub, como GitLab o Bitbucket, que funcionan con Git de la misma manera. Sin embargo, GitHub es el estándar de la industria y donde reside la mayor parte de la comunidad global.
Configuración inicial e instalación
Antes de empezar a teclear comandos, debemos preparar nuestro entorno de trabajo. El proceso varía ligeramente según tu sistema operativo.
Instalación de Git
- Windows: Descarga el instalador oficial desde
git-scm.com. Se recomienda usar la opción "Git Bash" durante la instalación para tener un terminal similar al de Linux/Mac. - macOS: Si tienes instalado Xcode, es probable que ya tengas Git. Si no, puedes instalarlo mediante Homebrew con el comando
brew install git. - Linux: Usa el gestor de paquetes de tu distribución (por ejemplo,
sudo apt install giten Ubuntu/Debian).
Configuración de identidad
Una vez instalado, abre tu terminal y configura tu nombre y correo electrónico. Estos datos se adjuntarán a cada cambio que realices para identificarte como autor.
git config --global user.name "Tu Nombre"
git config --global user.email "tu-email@ejemplo.com"
Autenticación con GitHub
Hoy en día, GitHub ya no permite usar contraseñas simples por terminal por razones de seguridad. Deberás configurar una SSH Key o crear un Personal Access Token (PAT). Esto permite que tu ordenador se comunique de forma segura con tu cuenta de GitHub.
Los conceptos básicos: El ciclo de vida de un archivo
Para entender Git no basta con memorizar comandos; hay que entender los estados por los que pasa un archivo. Hay tres áreas principales en un proyecto de Git:
- Directorio de trabajo (Working Directory): Es la carpeta en tu ordenador donde estás editando los archivos actualmente.
- Área de preparación (Staging Area / Index): Es un paso intermedio. Aquí añades los cambios que quieres que formen parte de tu próxima "foto" o versión. No todo lo que editas tiene por qué subirse inmediatamente.
- Repositorio (Local Repository): Cuando confirmas los cambios (commit), Git guarda permanentemente esa versión en la base de datos local (la carpeta oculta
.git).
El flujo estándar
El flujo de trabajo diario de un desarrollador suele seguir este patrón:
- Modificas un archivo en tu editor (VS Code, por ejemplo).
- Lo añades al área de preparación (
git add). - Guardas la versión con un mensaje descriptivo (
git commit). - Subes el resultado a la nube (
git push).
Guía paso a paso: De local a GitHub
Vamos a realizar un ejercicio práctico partiendo de una carpeta vacía en tu ordenador hasta tener nuestro código publicado en GitHub.
1. Inicializar el proyecto
Crea una carpeta nueva, entra en ella desde la terminal y ejecuta:
git init
Esto creará una carpeta oculta .git. A partir de ahora, Git está vigilando todo lo que ocurra en este directorio.
2. Crear y añadir archivos
Crea un archivo llamado index.html o README.md. Para que Git lo tenga en cuenta, debemos pasarlo al área de preparación:
git add README.md
Si quieres añadir todos los archivos nuevos o modificados a la vez, usa git add ..
3. Realizar el primer Commit
El commit es una instantánea de tu proyecto. Siempre debe ir acompañado de un mensaje claro:
git commit -m "Mi primer commit: creación del archivo inicial"
4. Conectar con GitHub
Ve a GitHub y crea un nuevo repositorio (botón "New" en tu perfil). No le añadas README ni licencia por ahora para evitar conflictos. Copia la URL que te proporcionan (será algo como https://github.com/usuario/mi-proyecto.git).
En tu terminal, vincula tu repositorio local con el remoto:
git remote add origin https://github.com/usuario/mi-proyecto.git
5. Subir los cambios
Finalmente, envía tu código a la nube:
git push -u origin main
(Nota: En versiones antiguas el nombre de la rama principal era 'master', actualmente es 'main').
Trabajando con ramas (Branches)
Las ramas son una de las características más potentes de Git. Permiten que varias personas trabajen en diferentes funcionalidades al mismo tiempo sin estorbarse.
- Crear una rama:
git branch nombre-de-la-rama - Cambiar a esa rama:
git checkout nombre-de-la-rama(ogit switchen versiones modernas). - Fusionar cambios (Merge): Una vez que tu nueva funcionalidad funciona, vuelves a la rama
mainy ejecutasgit merge nombre-de-la-rama.
¿Para qué sirven las Ramas en la vida real?
Imagina que estás desarrollando una página web. Tienes la versión estable en main. Un cliente te pide un formulario de contacto. Creas una rama llamada feature-contacto. Mientras trabajas en ella, surge un error crítico en la web que debes arreglar ya. Cambias a main, creas una rama rápida hotfix, arreglas el error, lo fusionas con main y luego vuelves a tu rama de contacto para seguir donde lo dejaste. Nada se ha mezclado ni roto.
Colaboración y el flujo "Pull Request"
GitHub no solo sirve para guardar tu código, sino para trabajar con otros. El flujo de colaboración profesional suele ser el siguiente:
- Fork: Haces una copia de un repositorio ajeno en tu propia cuenta de GitHub.
- Clone: Descargas esa copia a tu ordenador para trabajar.
- Push: Subes tus mejoras a tu copia (fork).
- Pull Request (PR): Pides al dueño del repositorio original que revise tus cambios e intente incorporarlos a su proyecto. Es el corazón del código abierto.
Cuando tú eres el que recibe cambios de otros, puedes comentar el código, sugerir correcciones y finalmente aceptar la unión de esas líneas a tu código principal.
Buenas prácticas para usar Git
Llevar un orden es crucial para que Git sea una ayuda y no un estorbo:
- Commits pequeños y frecuentes: Es mejor hacer 10 commits con cambios pequeños que uno solo enorme que contenga 20 funciones nuevas. Esto hace que sea mucho más fácil localizar errores.
- Mensajes de commit claros: Evita mensajes como "cambios", "fix" o "asdf". Usa verbos en imperativo como "Añadir validación de formulario" o "Corregir error en el login".
- Usa el archivo
.gitignore: No todo debe subirse a Git. Archivos de configuración con contraseñas, carpetas de dependencias pesadas (comonode_modules) o archivos temporales del sistema deben ignorarse creando un archivo llamado.gitignoree incluyendo ahí los nombres de las carpetas o extensiones. - Mantén tu rama principal limpia: Nunca trabajes directamente en
mainsi el proyecto es medianamente complejo. Usa ramas para todo.
Preguntas frecuentes
¿Qué pasa si borro la carpeta .git?
Si borras la carpeta oculta .git de tu proyecto, perderás todo el historial de versiones y las ramas que no hayas subido a GitHub. El código actual que ves en la carpeta permanecerá, pero dejará de ser un repositorio de Git.
¿Cuál es la diferencia entre git fetch y git pull?
git fetch descarga la información del servidor remoto pero no modifica tus archivos locales; solo te "avisa" de lo que hay nuevo. git pull hace el fetch y además intenta fusionar automáticamente esos cambios en tus archivos actuales.
¿Cómo deshago un commit si me he equivocado?
Hay varias formas. Si solo quieres cambiar el mensaje del último commit, usa git commit --amend. Si quieres deshacer el commit pero mantener los cambios en los archivos, usa git reset --soft HEAD~1. Utiliza estos comandos con precaución.
¿Es Git solo para programadores? Aunque nació para el software, Git es útil para cualquiera que trabaje con archivos de texto: escritores, científicos de datos o diseñadores que usen herramientas basadas en código (como SVG o configuraciones). Cualquier flujo de trabajo que requiera historial de versiones puede beneficiarse.
Conclusión
Git y GitHub pueden parecer intimidantes al principio debido a la cantidad de comandos y conceptos nuevos, pero son herramientas que transforman radicalmente la productividad de un desarrollador. Entender el flujo de "añadir, confirmar y subir" es la base sobre la cual construirás proyectos más robustos, seguros y colaborativos. Una vez que superas la curva de aprendizaje inicial, te preguntarás cómo pudiste trabajar alguna vez sin un control de versiones.
El mejor consejo para un principiante es practicar constantemente: inicializa cada pequeño proyecto que hagas, experimenta con las ramas y no tengas miedo a los errores, ya que Git siempre te permitirá volver atrás. Empieza hoy mismo creando tu perfil en GitHub, subiendo tus primeros repositorios y explorando el código de otras personas. El mundo del desarrollo colaborativo está a solo un git push de distancia.
Sigue leyendo
ProgramaciónPython o JavaScript: qué lenguaje aprender primero en 2026
Llegar al mundo de la programación en 2026 es una decisión estratégica excelente, pero enfrentarse a la pregunta de por dónde empezar puede resultar abrumador. Con la inteligencia artificial (IA) inte…
ProgramaciónCómo aprender a programar desde cero sin gastar dinero
La idea de que para aprender a programar es necesario pagar una matrícula universitaria de cinco cifras o un costoso bootcamp es uno de los mitos más persistentes del sector tecnológico. En la era d…
ProgramaciónFrameworks de JavaScript en 2026: React, Vue, Svelte o Solid
El ecosistema de JavaScript ha dejado de ser ese "Salvaje Oeste" de hace una década para convertirse en una industria madura donde la eficiencia, el rendimiento y la experiencia del desarrollador (DX)…