gadd

Crates.iogadd
lib.rsgadd
version0.5.1
created_at2023-04-20 08:04:23.999924+00
updated_at2025-09-02 21:55:19.838608+00
descriptionCommand-line utility for staging changes to Git (alternative to git-add's interactive mode).
homepagehttps://hermannm.dev/gadd
repositoryhttps://github.com/hermannm/gadd
max_upload_size
id844174
size110,067
Hermann Mørkrid (hermannm)

documentation

README

Ferris the Crab, mascot of the Rust programming language, holding Git logo

gadd

Command-line utility for staging changes to Git (alternative to git-add's interactive mode). Written in Rust, using git2-rs to interact with Git, and ratatui for the terminal UI.

Published on: crates.io/crates/gadd

Contents:

Screenshots

The Git staging area in gadd:

Screenshot of the gadd terminal application

Installation

Through Cargo (Rust package manager)

  • Run cargo install gadd
  • You should now be able to type gadd inside a Git repo in the terminal to manage your changes!

Manually

  • Go to the Releases page
  • Download the appropriate binary for your OS and architecture under Assets
    • On Linux/MacOS: Save the file as gadd
    • On Windows: Save the file as gadd.exe
  • Update your PATH environment variable to include the folder where you saved gadd
    • On Linux/MacOS:
      • Using zsh: echo 'export PATH=${HOME}/bin:${PATH}' >> ~/.zshrc
      • Using Bash: echo 'export PATH=${HOME}/bin:${PATH}' >> ~/.bashrc
      • These examples assume you saved gadd in ${HOME}/bin - replace it with your own path if you saved it somewhere else
    • On Windows:
      • Use the Windows search bar to search for "Edit environment variables", and open the suggested control panel
      • Under "User variables for [user]", find the one called "Path", and click "Edit..."
      • Click "New", and enter the path to the folder where you saved gadd.exe
  • Restart your terminal
  • You should now be able to type gadd inside a Git repo in the terminal to manage your changes!

Developer's guide

When publishing a new release:

  • Bump version in Cargo.toml
  • Add an entry to CHANGELOG.md (with the current date)
    • Remember to update the link section, and bump the version for the [Unreleased] link
  • Create commit and tag for the release (update TAG variable in below command):
    TAG=vX.Y.Z && git commit -m "Release ${TAG}" && git tag -a "${TAG}" -m "Release ${TAG}" && git log --oneline -2
    
  • Compile release binaries for all platforms:
    ./crosscompile.sh
    
    • You may have to install cross first:
      cargo install cross --git https://github.com/cross-rs/cross
      
  • Publish to crates.io:
    cargo publish
    
  • Push the commit and tag:
    git push && git push --tags
    
    • Our release workflow will then create a GitHub release with the pushed tag's changelog entry
  • Attach binaries (built in cross-compile step above) to release on GitHub: github.com/hermannm/gadd/releases

Credits

Commit count: 139

cargo fmt