Introducción a GitHub
Descubre GitHub, crea tu cuenta y aprende a utilizar esta plataforma para alojar tus proyectos.
Introducción a GitHub
GitHub es la plataforma de desarrollo colaborativo más popular del mundo. Construida en torno a Git, ofrece potentes herramientas para alojar, compartir y colaborar en proyectos de código. Este tutorial te guiará en tus primeros pasos en GitHub.
¿Qué es GitHub?
GitHub es una plataforma web que utiliza Git para el control de versiones y añade funcionalidades colaborativas:
- Alojamiento de repositorios: almacenamiento en la nube de tus proyectos Git
- Interfaz web: gestión visual de tus repositorios
- Colaboración: herramientas para trabajar en equipo
- Integración continua: GitHub Actions para la automatización
- Gestión de proyectos: issues, milestones, proyectos
- Documentación: wiki, README, GitHub Pages
GitHub vs Git
| Aspecto | Git | GitHub |
|---|---|---|
| Tipo | Herramienta de control de versiones | Plataforma web |
| Instalación | Local en tu máquina | Servicio en la nube |
| Interfaz | Línea de comandos | Interfaz web + CLI |
| Colaboración | Básica | Avanzada (PR, Issues, etc.) |
| Alojamiento | Local | Nube |
| Coste | Gratuito | Gratuito + planes de pago |
Creación de una cuenta de GitHub
Pasos para registrarse
- Visita GitHub.com
- Haz clic en “Sign up”
- Rellena el formulario:
- Username (nombre de usuario único)
- Contraseña
- Verifica tu correo electrónico
- Elige tu plan (Free para empezar)
Configuración del perfil
# Elementos importantes del perfil
- Foto de perfil profesional
- Bio descriptiva
- Localización
- Sitio web/portfolio
- Enlaces a redes sociales
Interfaz de GitHub
Página de inicio
- Dashboard: actividad de tus repositorios y organizaciones
- Repositories: lista de tus repositorios
- Notifications: actividad en tus proyectos
- Explore: descubrir nuevos proyectos
Página del repositorio
username/repository-name
├── Code (archivos y carpetas)
├── Issues (problemas y solicitudes)
├── Pull requests (propuestas de modificaciones)
├── Actions (CI/CD)
├── Projects (gestión de proyectos)
├── Wiki (documentación)
├── Security (seguridad)
├── Insights (estadísticas)
└── Settings (ajustes)
Creación de tu primer repositorio
Método 1: crear en GitHub y luego clonar
# 1. Crear el repositorio en GitHub.com
# 2. Clonar localmente
git clone https://github.com/username/mon-projet.git
cd mon-projet
# 3. Añadir contenido
echo "# Mon Premier Projet" > README.md
git add README.md
git commit -m "Initial commit"
git push origin main
Método 2: crear localmente y luego subir
# 1. Crear el proyecto localmente
mkdir mon-projet
cd mon-projet
git init
echo "# Mon Premier Projet" > README.md
git add README.md
git commit -m "Initial commit"
# 2. Añadir el remote de GitHub
git remote add origin https://github.com/username/mon-projet.git
git branch -M main
git push -u origin main
Comandos de Git con GitHub
Configuración de los remotes
# Ver los remotes configurados
git remote -v
# Añadir un remote
git remote add origin https://github.com/username/repo.git
# Modificar la URL de un remote
git remote set-url origin https://github.com/username/nouveau-repo.git
# Eliminar un remote
git remote remove origin
Push y Pull
# Subir a GitHub
git push origin main
# Subir una nueva rama
git push -u origin feature/nouvelle-fonctionnalite
# Obtener las modificaciones
git pull origin main
# Obtener sin fusionar
git fetch origin
Tipos de repositorios
Repositorios públicos
- Visibles para todos
- Gratuitos en GitHub
- Ideales para el código abierto
- Contribuyen a tu perfil
Repositorios privados
- Visibles solo para ti y tus colaboradores
- Gratuitos con limitaciones
- Perfectos para proyectos comerciales
- Control de acceso granular
Archivos especiales de GitHub
README.md
El archivo README se muestra en la página de inicio del repositorio:
# Nom du Projet
Description courte du projet.
## Installation
```bash
npm install
Utilisation
npm start
Contribution
Les contributions sont les bienvenues ! Voir CONTRIBUTING.md.
Licence
Ce projet est sous licence MIT - voir LICENSE pour plus de détails.
### .gitignore
GitHub ofrece plantillas de .gitignore para distintos lenguajes:
```bash
# Node.js
node_modules/
npm-debug.log*
.env
# Python
__pycache__/
*.pyc
.venv/
# Java
*.class
target/
LICENSE
Elegir una licencia adecuada:
- MIT: muy permisiva
- Apache 2.0: permisiva con protección de patentes
- GPL v3: copyleft fuerte
- BSD: permisiva simple
GitHub CLI
La herramienta oficial de línea de comandos de GitHub:
Instalación
# Windows (con Chocolatey)
choco install gh
# macOS (con Homebrew)
brew install gh
# Linux (Ubuntu/Debian)
sudo apt install gh
Autenticación
# Iniciar sesión en GitHub
gh auth login
# Comprobar la autenticación
gh auth status
Comandos útiles
# Crear un repositorio
gh repo create mon-projet --public
# Clonar un repositorio
gh repo clone username/repository
# Ver las issues
gh issue list
# Crear una issue
gh issue create --title "Bug trouvé" --body "Description du bug"
# Ver las pull requests
gh pr list
# Crear una pull request
gh pr create --title "Nouvelle fonctionnalité" --body "Description"
Gestión de accesos
Colaboradores
# Añadir un colaborador (a través de la interfaz web)
Settings > Manage access > Invite a collaborator
Equipos y organizaciones
- Organizaciones: agrupar varios repositorios
- Equipos: gestionar los permisos por grupo
- Roles: Owner, Member, Outside collaborator
Seguridad en GitHub
Autenticación en dos pasos (2FA)
- Settings > Password and authentication
- Enable two-factor authentication
- Usar una app (Google Authenticator, Authy)
- Guardar los códigos de recuperación
Claves SSH
Configuración para evitar escribir la contraseña:
# Generar una clave SSH
ssh-keygen -t ed25519 -C "votre.email@example.com"
# Añadir la clave al agente SSH
eval "$(ssh-agent -s)"
ssh-add ~/.ssh/id_ed25519
# Copiar la clave pública
cat ~/.ssh/id_ed25519.pub
# Añadir en GitHub: Settings > SSH and GPG keys
Personal Access Tokens
Para la autenticación mediante HTTPS:
# Generar un token: Settings > Developer settings > Personal access tokens
# Usar el token como contraseña
git clone https://github.com/username/repo.git
# Username: votre-username
# Password: votre-token
GitHub Pages
Alojar sitios web estáticos de forma gratuita:
Activación
- Settings > Pages
- Elegir la fuente (rama main, docs/, etc.)
- Tu sitio estará disponible en:
https://username.github.io/repository
Ejemplo de sitio sencillo
<!-- index.html -->
<!DOCTYPE html>
<html>
<head>
<title>Mon Site GitHub Pages</title>
</head>
<body>
<h1>Bienvenue sur mon site !</h1>
<p>Hébergé gratuitement sur GitHub Pages.</p>
</body>
</html>
Ejercicios prácticos
Ejercicio 1: primer repositorio
# 1. Crear un repositorio en GitHub.com llamado "hello-github"
# 2. Clonar localmente
git clone https://github.com/VOTRE-USERNAME/hello-github.git
cd hello-github
# 3. Crear un README
echo "# Hello GitHub" > README.md
echo "Mon premier projet sur GitHub !" >> README.md
# 4. Añadir y subir
git add README.md
git commit -m "Add README"
git push origin main
Ejercicio 2: proyecto con estructura
# 1. Crear la estructura
mkdir src docs tests
echo "console.log('Hello World!');" > src/app.js
echo "# Documentation" > docs/README.md
echo "// Tests à venir" > tests/app.test.js
# 2. Crear un .gitignore
echo "node_modules/" > .gitignore
echo "*.log" >> .gitignore
# 3. Añadirlo todo y subir
git add .
git commit -m "Initial project structure"
git push origin main
Ejercicio 3: GitHub Pages
# 1. Crear un sitio sencillo
echo "<!DOCTYPE html>
<html>
<head><title>Mon Site</title></head>
<body><h1>Hello GitHub Pages!</h1></body>
</html>" > index.html
# 2. Subir
git add index.html
git commit -m "Add GitHub Pages site"
git push origin main
# 3. Activar GitHub Pages en Settings
# 4. Visitar https://VOTRE-USERNAME.github.io/VOTRE-REPO
Descubrimiento de proyectos
Búsqueda avanzada
# Sintaxis de búsqueda de GitHub
language:javascript stars:>1000
user:microsoft language:typescript
org:facebook created:>2020-01-01
Trending
- Explore > Trending: proyectos populares
- Filtrar por lenguaje y período
- Descubrir nuevas tecnologías
Topics y tags
- Organizar los repositorios por temática
- Facilitar el descubrimiento
- Ejemplos:
web-development,machine-learning,api
Buenas prácticas
Un README eficaz
- Título claro y descripción
- Instrucciones de instalación
- Ejemplos de uso
- Contribution guidelines
- Licencia y contacto
Commits y mensajes
# Mensajes claros y descriptivos
git commit -m "feat: add user authentication"
git commit -m "fix: resolve login bug on mobile"
git commit -m "docs: update API documentation"
Organización de los repositorios
- Un repositorio por proyecto
- Nombres descriptivos
- Tags para las versiones
- Ramas organizadas
Integraciones populares
Servicios de terceros
- Travis CI: integración continua
- Codecov: cobertura de código
- Dependabot: actualización de dependencias
- Slack/Discord: notificaciones
GitHub Apps
- GitHub Desktop: interfaz gráfica
- VS Code: extensión de GitHub
- Mobile apps: GitHub para iOS/Android
Solución de problemas habituales
Problemas de autenticación
# Comprobar la configuración
git config --list | grep user
# Probar la conexión SSH
ssh -T git@github.com
# Restablecer las credenciales
git config --global --unset user.name
git config --global --unset user.email
Errores de push
# Error: Updates were rejected
git pull origin main
git push origin main
# Forzar el push (CUIDADO)
git push --force-with-lease origin main
Recursos adicionales
Documentación oficial
Comunidad
Conclusión
GitHub convierte Git en una potente plataforma colaborativa. Dominar GitHub te abre las puertas de la colaboración moderna y del código abierto. Es una herramienta esencial para cualquier desarrollador.
En el próximo tutorial profundizaremos en la colaboración en GitHub con las pull requests, las issues y otras herramientas colaborativas.
Tiempo de lectura estimado: 20 minutos
Nivel: Principiante
Etapa anterior: Ramas y fusión
Siguiente etapa: Colaboración con GitHub