Introducción a GitHub

Lectura
15 min~7 min lectura
CONCEPTO CLAVE: GitHub es una plataforma en la nube que actúa como hosting para tus repositorios Git. Mientras Git es la herramienta que controlas localmente en tu computadora, GitHub te permite almacenar tu código en internet y colaborar con otros desarrolladores de forma remota.

¿Qué es GitHub?

GitHub es una plataforma de desarrollo colaborativo fundada en 2008 que utiliza Git como sistema de control de versiones. Actualmente pertenece a Microsoft y es el hosting de código más utilizado del mundo, con más de 100 millones de desarrolladores activos.

Piensa en GitHub como una red social para programadores, pero especializada en código. Aquí puedes:

  • Almacenar tus proyectos de forma segura en la nube
  • Colaborar con otros desarrolladores en tiempo real
  • Compartir tu trabajo con la comunidad mundial
  • Revisar y discutir cambios antes de fusionarlos
  • Gestionar proyectos con herramientas integradas de seguimiento

Git vs GitHub: No son lo mismo

Es fundamental entender la diferencia entre ambos conceptos:

CaracterísticaGitGitHub
Qué esSistema de control de versionesPlataforma de hosting en la nube
InstalaciónSe instala localmenteSe accede vía navegador o app
Quién lo mantieneProyecto open sourceMicrosoft (empresa)
Función principalGestionar cambios del códigoAlmacenar y colaborar en código
Requiere internetNo, funciona offlineSí, para la mayoría de funciones
📌 Recuerda: Git es la herramienta, GitHub es el lugar donde la usas para colaborar. Puedes usar Git sin GitHub, pero no puedes usar GitHub sin Git.

¿Por qué usar GitHub para trabajo en equipo?

Cuando trabajas en un proyecto con varias personas, los problemas surgen inevitablemente: alguien sobrescribe el código de otro, no se sabe quién hizo qué cambio, o se pierde trabajo por errores humanos. GitHub resuelve estos problemas ofreciendo:

  1. Repositorios remotos: Todo el código está centralizado y accesible para todo el equipo.
  2. Historial completo: Cada cambio queda registrado con su autor, fecha y razón.
  3. Protección de ramas: Puedes evitar que código sin revisar llegue a la rama principal.
  4. Revisiones de código: Los Pull Requests permiten que otros revisen antes de fusionar.
  5. Resolución de conflictos: Herramientas visuales para resolver cuando dos personas modifican lo mismo.

Conceptos fundamentales de GitHub

Repositorio (Repository)

Un repositorio es como una carpeta que contiene todo tu proyecto: código, archivos, historial de cambios y configuración de Git. En GitHub puedes crear repositorios públicos (visibles para todos) o privados (solo accesibles para quienes tú invites).

💡 Buena práctica: Cada proyecto importante debería tener su propio repositorio. Evita meter muchos proyectos en un solo repositorio; mantenlos organizados y separados.

Commit

Un commit es una instantánea de tus cambios en un momento específico. Cuando haces commit en Git, guardas una versión de tu trabajo. Al subirlo a GitHub con git push, esa versión queda disponible para tu equipo.

Rama (Branch)

Las ramas te permiten trabajar en nuevas funcionalidades sin afectar el código principal. Imagina una rama como una línea paralela de desarrollo: puedes experimentar, romper cosas y cuando estés seguro, fusionarla con la rama principal.

📌 Convenio común: La rama principal se llama main o master. Las ramas de características suelen seguir el formato feature/nombre o fix/bug-descripcion.

Pull Request (PR)

Un Pull Request es el mecanismo principal de colaboración en GitHub. Cuando terminas una funcionalidad en tu rama, abres un PR para proponer que esos cambios se fusionen con la rama principal. Tu equipo puede:

  • Revisar el código línea por línea
  • Dejar comentarios y sugerencias
  • Aprobar o solicitar cambios
  • Ejecutar pruebas automáticas

Merge

El merge es la fusión de dos ramas. Cuando tu PR es aprobado, los cambios se fusionan en la rama objetivo. GitHub detecta automáticamente si hay conflictos y te ayuda a resolverlos.

Primeros pasos en GitHub

Ver más: Cómo crear tu cuenta y primer repositorio
  1. Crea una cuenta: Ve a github.com y regístrate con tu email. Elige un nombre de usuario profesional, ya que será tu identidad en el mundo del desarrollo.
  2. Crea un nuevo repositorio: Haz clic en el botón verde "New repository". Dale un nombre descriptivo, selecciona si será público o privado, y opcionalmente añade un README.
  3. Conecta tu repositorio local: Si ya tienes código local con Git, necesitas vincularlo. Copia la URL del repositorio y ejecuta:
git remote add origin https://github.com/tu-usuario/tu-repositorio.git
git branch -M main
git push -u origin main

Esto vincula tu carpeta local con el repositorio remoto en GitHub.

Flujo de trabajo típico en equipo

Cuando trabajas en un proyecto colaborativo en GitHub, el flujo generalmente sigue estos pasos:

PasoAcción localAcción en GitHub
1Actualizar rama main localDescargar últimos cambios
2Crear rama de característicaSe crea automáticamente
3Desarrollar y hacer commitsCommits locales
4Subir cambiosgit push origin feature/nombre
5Abrir Pull RequestSolicitar revisión
6Revisar feedbackResponder comentarios
7Fusionar cambiosMerge en main
⚠️ Precaución: Nunca hagas commit directamente en la rama main en proyectos colaborativos. Siempre trabaja en ramas separadas y usa Pull Requests para integrar cambios. Esto mantiene el código principal limpio y permite revisión.

Funciones adicionales de GitHub

GitHub ofrece muchas herramientas integradas que facilitan el trabajo en equipo:

  • Issues: Para reportar bugs, solicitar funcionalidades o planificar tareas.
  • Projects: Tableros tipo Kanban para gestionar el progreso del equipo.
  • Actions: Automatización de tareas como ejecutar pruebas o desplegar código.
  • Wiki: Documentación del proyecto accesible desde el repositorio.
  • Releases: Versiones formales de tu software con notas de cambio.

Integración con Git

GitHub no reemplaza a Git; lo complementa. Tu flujo de trabajo diario combinará comandos de Git con la interfaz de GitHub:

# Comandos Git para trabajar con GitHub

git clone https://github.com/usuario/repositorio.git  # Descargar repo
git fetch origin                                     # Actualizar info remota
git pull origin main                                 # Descargar y fusionar
git push origin mi-rama                              # Subir cambios
git remote -v                                        # Ver repositorios remotos
💡 Consejo profesional: Antes de empezar a trabajar cada día, ejecuta git pull origin main para asegurarte de que tienes la última versión del código. Esto evita conflictos grandes más adelante.
"GitHub es donde se aloja el código abierto, donde se construyen las contribuciones a proyectos privados y donde los desarrolladores presentan su trabajo." — Tom Preston-Werner, fundador de GitHub

Seguridad y permisos

En proyectos colaborativos, GitHub permite controlar quién puede hacer qué:

  • Propietario (Owner): Control total sobre el repositorio.
  • Mantenedor (Maintainer): Puede gestionar algunas configuraciones pero no eliminar el repo.
  • Escritor (Write): Puede hacer push de código pero no modificar configuración.
  • Lector (Triage): Puede gestionar issues y PRs pero no modificar código.
  • Lectura (Read): Solo puede ver el código, útil para revisión.
CONCEPTO CLAVE: En GitHub, la seguridad de tu código depende de configurar correctamente los permisos y activar funciones de protección en ramas importantes como main. Un error común es dar permisos de escritura a todos los colaboradores; es mejor usar el sistema de Pull Requests para todo cambio.
🧠 Quiz

¿Cuál de las siguientes afirmaciones es CORRECTA sobre GitHub?

  • A) GitHub es un sistema de control de versiones que funciona sin internet
  • B) GitHub es una plataforma de hosting que utiliza Git para el control de versiones
  • C) GitHub y Git son exactamente lo mismo, solo se escriben diferente
  • D) GitHub reemplaza completamente a Git y no necesitas instalarlo
✅ Respuesta correcta: B) GitHub es una plataforma de hosting que utiliza Git para el control de versiones. Git es la herramienta local de control de versiones, mientras GitHub es el servicio en la nube donde se almacenan y comparten los repositorios.

Conclusión

GitHub se ha convertido en una herramienta esencial para cualquier desarrollador y equipo de programación. No solo ofrece almacenamiento de código, sino toda una infraestructura de colaboración que incluye revisión de código, seguimiento de problemas, automatización de flujos de trabajo y gestión de proyectos.

Dominar GitHub es una habilidad fundamental en el mercado laboral actual. Las empresas buscan desarrolladores que sepan trabajar en equipo usando estas herramientas, no solo escribir código individual. En las siguientes lecciones profundizaremos en las funcionalidades colaborativas que hacen de GitHub una plataforma poderosa para el trabajo remoto en equipo.

💡 Próximo paso: Crea tu cuenta en GitHub si aún no la tienes, crea un repositorio de prueba y experimenta creando archivos, haciendo commits y explorando la interfaz. La mejor forma de aprender es haciendo.