Saltar al contenido
Volver al catálogo
Proyecto gitHerramientasAvanzadoPróximamente

Construye tu propio Git

Construye tu propio Git desde cero. Guarda blobs, trees y commits para entender los objetos direccionados por contenido y el control de versiones.

Constrúyelo en tu lenguaje

El tester trata tu programa como una caja negra: sirve cualquier lenguaje. Estos son los más cómodos para este proyecto.

Idioma del temario

Las guías de las etapas se leen en este idioma. Solo aparecen los idiomas en los que este proyecto ya está traducido completo; el idioma de la interfaz no cambia.

De qué trata este proyecto

Proyecto en preparación: estamos completando y verificando el recorrido de implementación y sus pruebas. Las capacidades descritas son el objetivo del proyecto; todavía no está habilitado para comenzar.

Git tiene fama de complicado, pero su modelo de datos cabe en una pizarra: cuatro tipos de objeto, un hash y un grafo. Todo lo confuso está en la interfaz, no en el fondo.

En este reto implementas ese fondo. Crearás objetos, los escribirás comprimidos en .git/objects, construirás árboles a partir del directorio de trabajo, harás commits y recorrerás el historial. Y lo mejor: el Git de verdad podrá leer tu repositorio.

Hoja de ruta

12 etapas repartidas en 4 fases. Cada etapa trae su guía y sus tests: avanzas cuando pasan.

  1. Fase 13 etapas

    El almacén de objetos

    init, escritura de blobs comprimidos con zlib y lectura por hash.

  2. Fase 23 etapas

    Árboles

    Representa directorios, escribe el árbol del working tree y vuelve a leerlo.

  3. Fase 34 etapas

    Commits e historial

    Commits con padres, refs, HEAD y un log que recorre el grafo.

  4. Fase 42 etapas

    Volver atrás

    Checkout de un commit y reconstrucción del directorio de trabajo.

Antes de empezar

Una implementación de Git compatible a nivel de formato: init, hash-object, cat-file, write-tree, commit-tree, log y checkout. Escribe objetos comprimidos con zlib e identificados por SHA-1, y produce repositorios que el git oficial puede abrir sin quejarse.

  • grep
    Próximamente

    Construye tu propio grep

    Construye tu propio grep desde cero. Lee stdin, filtra texto por patrones y maneja códigos de salida mientras aprendes los fundamentos de las herramientas Unix.

    Principiante7 etapas~6 hHerramientas
    expresiones regularesCLIstdin

    Go · Python · Zig

  • coding-agent
    Próximamente

    Construye tu propio agente de código

    Construye un agente de código desde cero. Conecta modelos con OpenRouter, protege API keys, define herramientas e implementa el ciclo autónomo ReAct.

    Principiante7 etapas~6 hHerramientas
    agentesOpenRouterLLM+3

    Python · TypeScript

  • hash-functions
    Beta

    Construye tus propias funciones SHA-256 y HMAC

    Construye funciones SHA-256 y HMAC desde cero. Implementa rotaciones, padding y bloques de compresión, y firma mensajes sin una biblioteca criptográfica.

    Intermedio7 etapas~8 hSeguridad
    funciones hashcriptografíabits

    C · Python · Go