¿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ística | Git | GitHub |
|---|---|---|
| Qué es | Sistema de control de versiones | Plataforma de hosting en la nube |
| Instalación | Se instala localmente | Se accede vía navegador o app |
| Quién lo mantiene | Proyecto open source | Microsoft (empresa) |
| Función principal | Gestionar cambios del código | Almacenar y colaborar en código |
| Requiere internet | No, funciona offline | Sí, para la mayoría de funciones |
¿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:
- Repositorios remotos: Todo el código está centralizado y accesible para todo el equipo.
- Historial completo: Cada cambio queda registrado con su autor, fecha y razón.
- Protección de ramas: Puedes evitar que código sin revisar llegue a la rama principal.
- Revisiones de código: Los Pull Requests permiten que otros revisen antes de fusionar.
- 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).
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.
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- 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.
- 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.
- 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 mainEsto 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:
| Paso | Acción local | Acción en GitHub |
|---|---|---|
| 1 | Actualizar rama main local | Descargar últimos cambios |
| 2 | Crear rama de característica | Se crea automáticamente |
| 3 | Desarrollar y hacer commits | Commits locales |
| 4 | Subir cambios | git push origin feature/nombre |
| 5 | Abrir Pull Request | Solicitar revisión |
| 6 | Revisar feedback | Responder comentarios |
| 7 | Fusionar cambios | Merge en main |
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 remotosgit 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.
¿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
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.