Skip to content

MiyoshiMikami/gitBuild

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Wyag - Git Implementation from Scratch

A pedagogical implementation of Git in Python, created as a portfolio project following the Write Yourself a Git guide.

Project Overview

Wyag (pronounced "why-ag," short for "write yourself a Git") is a from-scratch implementation of Git's core functionality. This project demonstrates Git's internal architecture by implementing its fundamental data structures and primary commands.

Purpose

This project serves as:

  • A comprehensive learning tool for understanding Git's internal mechanisms
  • A portfolio piece demonstrating proficiency in:
    • Python development
    • Version control systems architecture
    • File system manipulation
    • Hash algorithms and data compression
  • A structured implementation following established technical guidance

Current Implementation Status

βœ… Completed Features

  • init: Initializes a new Git repository
    • Creates the complete .git/ directory structure
    • Generates essential configuration files
    • Establishes default master branch

🚧 In Progress

(Following the original implementation roadmap)

πŸ“‹ Pending Implementation

  • Core Commands:
    • add: Stages files for commit
    • commit: Creates snapshot points in history
    • checkout: Switches branches or commits
    • log: Displays commit history
  • Object Manipulation:
    • cat-file: Inspects Git object contents
    • hash-object: Computes object hashes
    • ls-tree: Lists tree contents
  • Reference Management:
    • show-ref: Displays repository references
    • tag: Creates and manages tags
  • Repository Diagnostics:
    • status: Shows working directory state
    • check-ignore: Validates .gitignore rules
    • ls-files: Lists tracked files
    • rev-parse: Parses Git references

Technical Architecture

.git/ Directory Structure

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published