Skip to content

Repository files navigation

GitTrainer

GitTrainer es una aplicación de consola para Windows diseñada para aprender y practicar Git real sobre repositorios reales y descartables.

El objetivo no es memorizar comandos aislados. El entrenamiento apunta a entrar en un repositorio desconocido, inspeccionar su estado, construir un modelo mental, elegir una operación con criterio, ejecutarla, verificar el resultado y recuperarse cuando algo sale mal.

Estado

La versión pública actual es v13.24.2.

Validación final realizada en Windows con Git for Windows:

Resultado: 175 OK / 0 FAIL

Catálogo final:

69 familias normales de aprendizaje
3 capstones Job Ready
2 capstones High Fluency
74 escenarios totales

El roadmap funcional está cerrado. El proyecto entra en mantenimiento: los cambios futuros deberían responder a bugs o problemas observados durante uso real.

Qué entrena

  • working tree, index, HEAD, staging, commits, historia y .gitignore;
  • branches, fast-forward, detached HEAD y amend;
  • clone, remotos, tracking, fetch, push, upstream y divergencias;
  • colaboración con bare remotes y múltiples clones;
  • merge, conflictos, abort y resolución manual;
  • rebase, conflictos de rebase y criterio merge vs rebase;
  • reset, revert, stash, reflog y recuperación;
  • cherry-pick, force-with-lease, tags anotados, blame y bisect;
  • rebase interactivo: squash, fixup, reorder, autosquash y drop;
  • worktrees;
  • retención, transferencia, scheduler adaptativo y Git Rush;
  • evaluaciones JOB READY · CORE y PROFESSIONAL STRONG · HIGH FLUENCY.

Requisitos

Para desarrollar o ejecutar desde source:

  • Windows x64;
  • .NET SDK 10;
  • Git for Windows.

La distribución self-contained publicada como Release no requiere que .NET 10 esté instalado, pero Git for Windows sigue siendo necesario porque GitTrainer trabaja con git.exe real.

Ejecutar desde source

dotnet build
dotnet run

Suite completa:

dotnet run -- --local-tests

Pruebas de seguridad:

dotnet run -- --security-tests

Diagnóstico del runtime:

dotnet run -- --diagnostics

Publicar una versión portable

dotnet publish -c Release -r win-x64 --self-contained true -p:PublishSingleFile=false -o .\publish\GitTrainer

Validar el binario publicado:

.\publish\GitTrainer\GitTrainer.exe --local-tests

La carpeta publish/ está excluida del repositorio. Los binarios portables pertenecen a GitHub Releases, no al historial de source.

Modelo de aprendizaje

El progreso no depende sólo de completar ejercicios. GitTrainer registra evidencia y distingue:

NOT INTRODUCED
LEARNING
GUIDED
INDEPENDENT
RETAINED
TRANSFERABLE
FLUENT

El scheduler combina progresión deliberada, práctica focalizada, autonomía, retención espaciada, transferencia, mantenimiento e interleaving. Los laboratorios técnicos permiten inspeccionar escenarios sin modificar mastery.

Workstation contenida

La shell de entrenamiento es controlada; no expone PowerShell o cmd.exe arbitrarios. Los comandos Git se ejecutan contra repositorios reales dentro de una workstation virtual contenida.

La arquitectura de seguridad combina:

  • token WRITE_RESTRICTED;
  • ConPTY;
  • Job Object;
  • ACL por workspace Machine;
  • entorno aislado;
  • mapeo de rutas virtuales;
  • política y reescritura de argumentos Git;
  • bloqueo de helpers, editores y superficies de ejecución externa incompatibles con el modelo de amenaza.

GitTrainer no es una VM ni una sandbox para ejecutar repositorios hostiles de terceros. El alcance y las limitaciones están documentados en docs/SECURITY_MODEL.md.

Persistencia

Evidencia longitudinal:

%LOCALAPPDATA%\GitTrainer\Profile\attempts.jsonl

Logs:

%LOCALAPPDATA%\GitTrainer\Logs

Los repositorios de entrenamiento son descartables.

Estructura del repositorio

App/             UI y coordinación de la aplicación
Core/            primitivas compartidas, paths y salida de terminal
Git/             runtime Git, política, rewriter y sandbox
Infrastructure/  integración Win32, ConPTY, ACL y tokens restringidos
Learning/        evidencia, mastery y modelo mental
Persistence/     almacenamiento del historial
Scenarios/       escenarios y validadores de estado final
Shell/           shell de entrenamiento y navegación
Tests/           suite local de regresión
Training/        scheduler, Job Ready, Professional Strong y Git Rush
docs/            documentación técnica consolidada
tools/           utilidades de diagnóstico

Desarrollo asistido por IA

GitTrainer fue desarrollado mediante un flujo iterativo asistido por IA. La definición del producto, requisitos, criterios de aceptación, pruebas y validación fueron dirigidos por el mantenedor del proyecto; la implementación del código fue generada principalmente con asistencia de ChatGPT y validada mediante compilación, pruebas automatizadas y uso manual en Windows.

Esta nota forma parte de la documentación pública del proyecto para mantener clara su procedencia técnica.

Documentación

Licencia

GitTrainer se publica bajo la licencia MIT. Ver LICENSE.

About

Interactive Git training environment for Windows using real repositories, adaptive learning and sandboxed execution.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages