¿Qué es GitHub?
GitHub es una plataforma basada en la nube para alojar repositorios de Git y colaborar con otros desarrolladores. Toma todo lo que Git hace localmente —rastrear cambios, gestionar ramas, fusionar código— y le añade una interfaz web con herramientas para la revisión de código, seguimiento de incidencias, automatización y gestión de proyectos.
Piensa en Git como el motor y en GitHub como el tablero de control. Git se ejecuta en tu máquina, encargándose del control de versiones. GitHub aloja tu repositorio en línea, permitiendo que otros vean tu código, sugieran mejoras, reporten errores y contribuyan con funcionalidades a través de un flujo de trabajo estructurado.
Con más de 100 millones de desarrolladores y 330 millones de repositorios, GitHub es el lugar donde el mundo construye software. Proyectos de código abierto, startups, empresas y desarrolladores independientes lo utilizan como su plataforma de colaboración principal. Si estás aprendiendo a programar, tener un perfil de GitHub es tan importante como tener un portafolio.
Por qué GitHub es importante
El control de versiones en tu máquina es útil, pero la colaboración requiere un espacio compartido. GitHub proporciona ese espacio con funcionalidades que hacen que el trabajo en equipo sea estructurado y transparente:
- Hosting centralizado — tu código reside en la nube, accesible desde cualquier lugar y con un respaldo que nunca se pierde.
- Pull requests — propone cambios, revisa el código línea por línea y haz el merge solo cuando todos estén de acuerdo.
- Issues y tableros de proyecto — rastrea errores, gestiona funcionalidades y organiza el trabajo con etiquetas, hitos y tableros kanban.
- Automatización CI/CD — GitHub Actions ejecuta pruebas, construye y despliega tu código automáticamente en cada push.
- Comunidad — descubre proyectos de código abierto, contribuye en ellos y construye tu reputación como desarrollador.
- Seguridad — el escaneo de dependencias, la detección de secretos y los flujos de revisión de código detectan vulnerabilidades a tiempo.
GitHub no es solo un servicio de hosting de código. Es una plataforma de desarrollo que cubre todo el ciclo de vida del software, desde la idea hasta el despliegue.
Configuración de GitHub
Creación de una cuenta
Ve a github.com y regístrate con tu correo electrónico. Elige el plan gratuito; incluye todo lo necesario para comenzar.
Configuración de Git
Después de crear tu cuenta, configura Git para trabajar con GitHub:
# Set your identity
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
# Set the default branch name
git config --global init.defaultBranch main
Conexión vía SSH
Las claves SSH te permiten autenticarte sin tener que introducir tu contraseña cada vez:
# Generate a new SSH key
ssh-keygen -t ed25519 -C "[email protected]"
# Start the SSH agent
eval "$(ssh-agent -s)"
# Add your key to the agent
ssh-add ~/.ssh/id_ed25519
# Copy the public key to add to GitHub
cat ~/.ssh/id_ed25519.pub
Ve a GitHub Settings > SSH and GPG keys > New SSH key, pega tu clave pública y guarda los cambios. Ahora ya puedes clonar, hacer push y pull utilizando URLs de SSH.
Funcionalidades principales de GitHub
Repositories
Un repository es un proyecto en GitHub. Contiene tu código, archivos de configuración, documentación y el historial completo de Git. Cada repository tiene:
- Una pestaña de código para explorar los archivos
- Una pestaña de issues para hacer seguimiento del trabajo
- Una pestaña de pull requests para la revisión de código
- Una wiki para la documentación
- Una pestaña de settings para el control de acceso
Crea un nuevo repository desde la página de inicio de GitHub o desde la CLI:
# Create a new repo on GitHub, then clone it
gh repo create my-project --public --clone
Issues
Los issues son la forma de hacer seguimiento al trabajo. Úsalos para reportar bugs, solicitar funcionalidades, gestionar tareas y mantener discusiones:
# Create an issue from the command line
gh issue create --title "Fix login bug" --body "Users cannot log in with empty email"
Cada issue puede tener:
- Labels — para categorizar por tipo (bug, mejora, documentación)
- Assignees — quién es el responsable
- Milestones — para agrupar issues en versiones o sprints
- Linked pull requests — para mostrar qué PRs cierran el issue
Pull requests
Los pull requests son el núcleo de la colaboración en GitHub. Te permiten proponer cambios, revisar código y hacer el merge cuando estén listos:
# Create a branch, make changes, push, then open a PR
git checkout -b fix-login-bug
# make changes
git add .
git commit -m "Fix null check in login handler"
git push origin fix-login-bug
gh pr create --title "Fix login bug" --body "Adds null check for empty email"
Los pull requests incluyen herramientas de revisión de código, checks automatizados, hilos de discusión y controles de merge. Son la forma estándar de integrar código en una base de código compartida.
GitHub Actions
Actions automatizan tu flujo de desarrollo. Escribe archivos YAML que definan qué sucede cuando ocurren ciertos eventos:
# .github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm test
Los usos más comunes incluyen ejecutar tests en cada push, desplegar a producción al hacer merge a main y construir imágenes de Docker en cada release.
GitHub Pages
Aloja sitios web estáticos directamente desde tu repository:
# Enable Pages in your repo settings, then push to the gh-pages branch
git checkout -b gh-pages
git push origin gh-pages
Pages es perfecto para sitios de documentación, portfolios, blogs y landing pages. Soporta dominios personalizados, HTTPS y generadores de sitios estáticos como Jekyll y Astro.
Trabajo en equipo
Forking de repositorios
Hacer un fork crea tu propia copia del repositorio de otra persona. Esto te permite realizar cambios sin afectar al original:
# Fork a repo using the GitHub CLI
gh repo fork owner/repo --clone
# Or fork and add a remote
git remote add fork https://github.com/your-username/repo.git
El forking es la forma estándar de contribuir al código abierto. Haces un fork del repositorio, realizas los cambios en tu copia y abres un pull request hacia el repositorio original.
Revisión de código
Las herramientas de revisión de código de GitHub te permiten comentar líneas específicas, sugerir cambios y solicitar modificaciones:
- Comentarios inline — para discutir líneas de código específicas.
- Cambios sugeridos — para proponer ediciones que los autores pueden aceptar con un solo clic.
- Aprobaciones de revisión — para aprobar, solicitar cambios o comentar el PR en general.
- Code owners — para asignar revisores automáticamente según los archivos que hayan cambiado.
Protección de ramas
Protege las ramas importantes de cambios accidentales o no autorizados:
- Requerir revisiones de pull request antes de hacer el merge.
- Requerir que las comprobaciones de estado pasen (la CI debe estar en verde).
- Requerir un historial lineal (sin merge commits).
- Restringir quién puede hacer push a la rama.
- Requerir commits firmados.
Gestión de proyectos
GitHub Projects ofrece tableros kanban, tablas y roadmaps para gestionar el trabajo:
- Crear columnas como “To Do”, “In Progress” y “Done”.
- Vincular issues y pull requests a las tarjetas.
- Automatizar el movimiento de tarjetas basado en eventos.
- Hacer seguimiento del progreso con insights y gráficos.
Mejores prácticas
- Escribe archivos README descriptivos — explica qué hace tu proyecto, cómo instalarlo y cómo contribuir.
- Usa plantillas de issues — estandariza los reportes de errores y las solicitudes de nuevas funcionalidades.
- Habilita la protección de ramas — requiere revisiones y que el CI pase correctamente antes de hacer el merge.
- Escribe descripciones de PR significativas — explica qué cambió, por qué y cómo probarlo.
- Usa GitHub Actions — automatiza las pruebas y el despliegue en lugar de hacerlo manualmente.
- Mantén los repositorios enfocados — un proyecto por repo, evita crear un monolito de código no relacionado.
- Etiqueta los releases — usa versionado semántico y GitHub Releases para marcar las versiones estables.
- Contribuye al open source — haz fork, corrige errores y envía pull requests para ganar experiencia y reputación.
Errores comunes
- Subir datos sensibles, como API keys o contraseñas, a un repositorio público.
- No escribir un README, dejando a los visitantes confundidos sobre la función del proyecto.
- Crear pull requests sin descripción ni contexto para los revisores.
- Ignorar los issues y dejar que se acumulen sin realizar un triage.
- No utilizar la protección de ramas, permitiendo pushes directos a main.
- Hacer commit de node_modules, .env u otros archivos que deberían estar en .gitignore.
- Usar GitHub como un servicio de respaldo sin entender primero cómo funciona Git localmente.
Qué aprender a continuación
Ya comprendes las funciones principales de GitHub: repositories, issues, pull requests y Actions. A partir de aquí, el siguiente paso natural es Git para dominar el sistema de control de versiones que hay detrás, incluyendo el branching, merging y rebasing. Elige un proyecto, contribuye en él y deja que la práctica se acumule.