Skip to content

cumisar/YACgit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Project yacgit - Yet Another C Git Implementation

Overview

yacgit is a lightweight implementation of Git core features in C. This project aims to provide a simple, educational, and functional implementation of Git's core concepts, including blobs, trees, and commits. It also includes a basic hashing function to support Git-like object storage.

Features

Necessary

  • Blobs: Store file contents as blobs in memory.
  • Hashing: Generate SHA-1-like hashes for Git objects.
  • Commits: Create commits that reference trees and blobs.
  • Trees: Represent directory structures using trees.
  • Diff:
  • Merge:

Additional

  • Blobs compress
  • Branches
  • Subfolders
  • Rebase

Getting Started

Prerequisites

To build and run yacgit, you need:

  • A C compiler (e.g., gcc or clang).
  • CMake (version 3.10 or higher).

Building the Project

  1. Clone the repository

  2. Configure the project using CMake:

    cmake -DCMAKE_BUILD_TYPE=Release -S . -B build
  3. Build the project:

    cmake --build build
  4. Run the executable:

    ./build/LC.x

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors