Neth Pehesara Botheju

Neth Pehesara Botheju

Second-year Computer Science student at the University of Westminster.

Git cli client (gity)


Project Overview

Gity is a lightweight command-line interface (CLI) tool built with Rust that streamlines common Git operations. The goal is to create a user-friendly CLI Git client that combines common Git commands with additional integrated features.

GitHub Repository Here

Features

Gity works with officially initialized Git repositories or existing projects. Feel free to switch between Gity and Git at any time without issue.

  • Near-instant execution (thanks to Rust's zero-cost abstractions)
  • Common Git commands:
    • gity init . - Initializes a project by creating a .git folder
    • gity add . - Stages changes
    • git commit -m "<message>" - Commits staged changes with a message
    • gity push - Pushes commits to the remote repository

Technical Implementation

  • Language: Rust — a modern, fast, and memory-safe language that executes with near-instant speed.
  • Package Manager: Cargo — Rust's package manager for easy dependency management and building.
  • Libraries:
    • clap - Functional components with hooks for state management
    • git2-rs - Open-source Rust bindings for interacting with Git repositories

Releases

v0.1.0 (Latest)

Gity currently supports a limited set of Git operations, with more features planned for future releases. The primary focus in this version is to implement the simplest Git commands.

Supported Commands
  • gity init . — Initializes a new Git repository in the current directory.
  • gity add . — Tracks newly added files in the repository (note: only newly added files are tracked; deleted files are not).
  • gity commit -m "<message>" — Commits changes with a short message (only supports a commit title, not a detailed description).
  • gity push — Pushes local commits to the remote repository.
Known Limitations
  • gity add . only tracks newly added files. Deleted or modified files are not currently handled.
  • gity commit -m "<message>" only accepts a short commit title; it does not yet support detailed commit descriptions.

Future Enhancements

  • Implement advanced Git commands (e.g., branch management, merge, rebase)
  • Add AI-based auto-commit message generation integrated with the CLI
  • Introduce combined commands for easier and faster workflows

© 2025 Neth Pehesara Botheju. Developed using Svelte.

UI inspired by Jekyll & AcademicPages, a fork of Minimal Mistakes.