0%
Tutorial 5 de 10
50% completado

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

AspectoGitGitHub
TipoHerramienta de control de versionesPlataforma web
InstalaciónLocal en tu máquinaServicio en la nube
InterfazLínea de comandosInterfaz web + CLI
ColaboraciónBásicaAvanzada (PR, Issues, etc.)
AlojamientoLocalNube
CosteGratuitoGratuito + planes de pago

Creación de una cuenta de GitHub

Pasos para registrarse

  1. Visita GitHub.com
  2. Haz clic en “Sign up”
  3. Rellena el formulario:
    • Username (nombre de usuario único)
    • Email
    • Contraseña
  4. Verifica tu correo electrónico
  5. 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)

  1. Settings > Password and authentication
  2. Enable two-factor authentication
  3. Usar una app (Google Authenticator, Authy)
  4. 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

  1. Settings > Pages
  2. Elegir la fuente (rama main, docs/, etc.)
  3. 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
  • 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

  1. Título claro y descripción
  2. Instrucciones de instalación
  3. Ejemplos de uso
  4. Contribution guidelines
  5. 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