Skip to content

Commit 1136802

Browse files
committed
feat: create Git & GitHub Masterclass interactive course
0 parents  commit 1136802

46 files changed

Lines changed: 13830 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/deploy.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: Deploy to GitHub Pages
2+
3+
on:
4+
push:
5+
branches: [main]
6+
7+
permissions:
8+
contents: read
9+
pages: write
10+
id-token: write
11+
12+
concurrency:
13+
group: pages
14+
cancel-in-progress: false
15+
16+
jobs:
17+
build:
18+
runs-on: ubuntu-latest
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v4
22+
23+
- name: Setup Node
24+
uses: actions/setup-node@v4
25+
with:
26+
node-version: 20
27+
cache: npm
28+
29+
- name: Install dependencies
30+
run: npm ci
31+
32+
- name: Build
33+
env:
34+
BASE_PATH: '/git-github-masterclass'
35+
run: npm run build
36+
37+
- name: Upload artifact
38+
uses: actions/upload-pages-artifact@v3
39+
with:
40+
path: build
41+
42+
deploy:
43+
needs: build
44+
runs-on: ubuntu-latest
45+
environment:
46+
name: github-pages
47+
url: ${{ steps.deployment.outputs.page_url }}
48+
steps:
49+
- name: Deploy to GitHub Pages
50+
id: deployment
51+
uses: actions/deploy-pages@v4

.gitignore

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
node_modules
2+
build
3+
.svelte-kit
4+
.env
5+
.env.*
6+
!.env.example
7+
.DS_Store
8+
Thumbs.db
9+
*.log

DEPLOY_GUIDE.md

Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
# Guia de Deploy en GitHub Pages (otro usuario)
2+
3+
Guia paso a paso para clonar este proyecto y hostearlo en tu propia cuenta de GitHub Pages.
4+
5+
## Requisitos previos
6+
7+
- Cuenta de GitHub
8+
- [Node.js](https://nodejs.org/) v20 o superior instalado
9+
- [Git](https://git-scm.com/) instalado
10+
11+
## Paso 1 — Clonar el repositorio
12+
13+
```bash
14+
git clone https://github.com/hendryavila/git-github-masterclass.git
15+
cd git-github-masterclass
16+
```
17+
18+
## Paso 2 — Crear tu propio repositorio en GitHub
19+
20+
1. Ve a github.com/new
21+
2. Ponle un nombre a tu repositorio (ejemplo: `git-github-masterclass`)
22+
3. Dejalo como **Public** (GitHub Pages gratuito solo funciona con repos publicos en cuentas free)
23+
4. **No** marques "Add a README" ni ninguna otra opcion — el repo debe estar vacio
24+
5. Click en **Create repository**
25+
26+
## Paso 3 — Cambiar el remote a tu repositorio
27+
28+
```bash
29+
git remote remove origin
30+
git remote add origin https://github.com/TU_USUARIO/TU_REPO.git
31+
```
32+
33+
## Paso 4 — Actualizar el BASE_PATH
34+
35+
Este es el paso **mas importante**. El `BASE_PATH` debe coincidir con el nombre de tu repositorio.
36+
37+
Abri el archivo `.github/workflows/deploy.yml` y busca esta linea:
38+
39+
```yaml
40+
env:
41+
BASE_PATH: '/git-github-masterclass'
42+
```
43+
44+
Cambiala al nombre **exacto** de tu repositorio:
45+
46+
```yaml
47+
env:
48+
BASE_PATH: '/NOMBRE_DE_TU_REPO'
49+
```
50+
51+
> Si el nombre del repo es el mismo (`git-github-masterclass`), no necesitas cambiar nada.
52+
53+
## Paso 5 — Push al repositorio
54+
55+
```bash
56+
git branch -M main
57+
git push -u origin main
58+
```
59+
60+
## Paso 6 — Habilitar GitHub Pages
61+
62+
1. Ve a tu repositorio en GitHub
63+
2. Click en **Settings** (pestana superior)
64+
3. En el menu lateral izquierdo, click en **Pages**
65+
4. En **Source**, selecciona **GitHub Actions**
66+
67+
> No selecciones "Deploy from a branch". El workflow ya se encarga de todo.
68+
69+
## Paso 7 — Verificar el deploy
70+
71+
1. Despues del push, ve a la pestana **Actions** de tu repositorio
72+
2. Deberias ver el workflow **"Deploy to GitHub Pages"** ejecutandose
73+
3. Espera a que termine (~1-2 minutos)
74+
4. Tu sitio estara disponible en:
75+
76+
```
77+
https://TU_USUARIO.github.io/NOMBRE_DE_TU_REPO/
78+
```
79+
80+
## Solucion de problemas
81+
82+
### El workflow falla en el build
83+
- Verifica que el `BASE_PATH` en `deploy.yml` coincida **exactamente** con el nombre del repositorio (con `/` al inicio, sin `/` al final)
84+
85+
### La pagina carga en blanco o con errores 404
86+
- El `BASE_PATH` no coincide con el nombre del repo. Revisa el Paso 4
87+
- Verifica que en Settings > Pages el source sea **GitHub Actions**, no "Deploy from a branch"
88+
89+
### Los estilos no cargan
90+
- Mismo problema: `BASE_PATH` incorrecto. Todos los assets (CSS, JS) usan esa ruta base
91+
92+
### El workflow no aparece en Actions
93+
- Asegurate de que el archivo `.github/workflows/deploy.yml` existe en tu rama `main`

README.md

Lines changed: 119 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,119 @@
1+
# Git & GitHub Masterclass
2+
3+
> Curso interactivo completo para dominar Git y GitHub — de principiante avanzado a experto.
4+
5+
## Sobre este proyecto
6+
7+
Este curso interactivo fue **orquestado por [Hendry Avila](https://github.com/hendryavila)** y **generado con asistencia de Inteligencia Artificial**.
8+
9+
### Filosofia
10+
11+
Este proyecto es **Open Source** y su unico proposito es **la educacion**. Nace de la conviccion de que el aprendizaje debe ser:
12+
13+
- **Accesible**: Gratis, abierto, y disponible para todos
14+
- **Dinamico**: Interactivo, no solo texto estatico — incluye terminal simulado, grafos visuales de Git, escenarios de decision y quizzes
15+
- **Adaptable**: Cada persona aprende a su ritmo, con progreso guardado localmente
16+
- **Practico**: Aprender haciendo, no solo leyendo
17+
18+
### Nota sobre la implementacion tecnica
19+
20+
El desarrollo tecnico de este curso (codigo, estructura, patrones) puede o no seguir las mejores practicas de ingenieria de software. **Ese NO es el foco del proyecto.** El objetivo es proveer un espacio de aprendizaje diferente, dinamico y efectivo. Si encuentras mejoras tecnicas, los PRs son bienvenidos.
21+
22+
## Que vas a aprender
23+
24+
### Parte 1: Masterizar Git (Modulos 1-7)
25+
- Como funciona Git internamente (objects, blobs, trees, commits)
26+
- Branches: creacion, navegacion y gestion
27+
- Merging: fast-forward, 3-way merge, resolucion de conflictos
28+
- Rebase: reescribir historia, interactive rebase, squash
29+
- Recovery: reset, revert, stash, reflog
30+
- Herramientas avanzadas: cherry-pick, bisect, hooks, tags
31+
- Workflows en equipo: Git Flow, GitHub Flow, Trunk-based
32+
33+
### Parte 2: Masterizar GitHub (Modulos 8-14)
34+
- Configuracion profesional de GitHub (SSH, tokens, settings)
35+
- Pull Requests y Code Review como un profesional
36+
- Issues y Project Management
37+
- GitHub Actions: CI/CD desde cero
38+
- Contribucion a proyectos Open Source
39+
- GitHub Pages, Releases y Packages
40+
- Security, API, CLI y Codespaces
41+
42+
### Caracteristicas del curso
43+
- 14 modulos interactivos (~10 horas de contenido)
44+
- Terminal Git simulado para practicar comandos
45+
- Grafos visuales SVG de commits y branches
46+
- Escenarios de decision interactivos
47+
- Quizzes con explicaciones detalladas
48+
- Sistema de badges y progreso
49+
- Certificado de finalizacion
50+
- Vocabulario flotante por modulo
51+
52+
## Tech Stack
53+
54+
- [SvelteKit 5](https://svelte.dev/) — Framework web con Svelte 5 runes
55+
- [Tailwind CSS v4](https://tailwindcss.com/) — Estilos con tema JARVIS/Tony Stark
56+
- [Static Adapter](https://kit.svelte.dev/docs/adapter-static) — Deploy estatico
57+
- GitHub Pages — Hosting gratuito
58+
59+
## Como ejecutar localmente
60+
61+
```bash
62+
git clone https://github.com/hendryavila/git-github-masterclass.git
63+
cd git-github-masterclass
64+
npm install
65+
npm run dev
66+
```
67+
68+
Abre `http://localhost:5173` en tu navegador.
69+
70+
## Deploy
71+
72+
Consulta [DEPLOY_GUIDE.md](./DEPLOY_GUIDE.md) para instrucciones paso a paso de como deployar tu propia copia en GitHub Pages.
73+
74+
## Estructura del proyecto
75+
76+
```
77+
src/
78+
├── lib/
79+
│ ├── stores/course.ts # Estado del curso con localStorage
80+
│ ├── data/
81+
│ │ ├── modules.ts # Metadata de 14 modulos
82+
│ │ └── vocabulary.ts # Vocabulario por modulo
83+
│ └── components/
84+
│ ├── Quiz.svelte # Quizzes interactivos
85+
│ ├── GitTerminal.svelte # Terminal Git simulado
86+
│ ├── GitGraph.svelte # Grafo visual de commits
87+
│ ├── BranchingScenario.svelte # Escenarios de decision
88+
│ └── ... # Mas componentes
89+
└── routes/
90+
├── +page.svelte # Homepage
91+
├── modulo/1-14/ # 14 modulos del curso
92+
└── resultados/ # Resultados y certificado
93+
```
94+
95+
## Contribuir
96+
97+
Este es un proyecto educativo Open Source. Si quieres contribuir:
98+
99+
1. Fork el repositorio
100+
2. Crea una rama (`git checkout -b feature/mejora`)
101+
3. Haz tus cambios
102+
4. Abre un Pull Request
103+
104+
Toda contribucion que mejore la experiencia de aprendizaje es bienvenida.
105+
106+
## Fuentes principales
107+
108+
- [Pro Git Book](https://git-scm.com/book/en/v2) — Scott Chacon & Ben Straub
109+
- [GitHub Docs](https://docs.github.com) — Documentacion oficial
110+
- [Atlassian Git Tutorials](https://www.atlassian.com/git/tutorials) — Guias de workflows
111+
- [Open Source Guides](https://opensource.guide/) — Contribucion Open Source
112+
113+
## Licencia
114+
115+
MIT — Usa, modifica y comparte libremente.
116+
117+
---
118+
119+
Hecho con pasion por la educacion y un poco de ayuda de IA.

0 commit comments

Comments
 (0)