Elegant Git
August 30, 2026 · View on GitHub
Elegant Git is an assistant who carefully automates routine work with Git.
Please visit https://elegant-git.extsoft.pro/ to get started with user documentation or click on the picture :point_down::point_down::point_down: to see a demo.
The contribution process at a glance
- Everyone contributing is governed by the Code of Conduct - please read it
- After, please get familiar with project rules described in CONTRIBUTING.md.
- Make a contribution
:tada::tada::tada: That's all! :tada::tada::tada:
Hands-on development notes
The information below guides you on different aspects of the development process. If you have something which should be quickly available, please propose changes here.
Table of contents
Architecture
The structure of directories:
.
├── .config/elegant-git/hooks/ <- the repo's own Elegant Git hooks
├── .config/mise/ <- tool versions and project tasks
├── cmd/ <- Go CLI entrypoint
├── docs/ <- user documentation (Jekyll + just-the-docs)
├── internal/ <- Go packages (CLI commands, git, memory, …)
└── install.sh <- the installer published with every release
eg … runs the Go binary built from cmd/eg, which is part of the
github.com/extsoft/elegant-git module. Commands live under internal/cli/ as an object-first
Cobra tree (for example work start, repo clone).
Development environment
- Install mise
- Run
mise run initonce after clone - Use
mise run buildto producedist/eg.mise run eg-previewcross-compiles a Linux binary and opens a fresh Docker shell withegonPATH(Git installed, emptyHOME).
Checks and tests
- Format and lint:
mise run fix(CI runsmise run check) - Go tests:
mise run test
Updating documentation
Edit Markdown files in docs/. The site is organized as Home, Installation, Getting
started, the guide pages, Reference, and About. Installation, Reference, and About nest via
parent front matter of
Just the Docs. Preview locally with
mise run docs-preview (serves at http://localhost:4000; override with DOCS_PORT). The site
deploys to GitHub Pages on pushes to main.
Releasing
Releases are cut locally by a maintainer with gh installed. Versions
follow CalVer — vYYYY.M.D for a stable release and vYYYY.M.D.hhmm-prerelease for a preview.
mise run release:artifacts <version>cross-compiles the binaries, archives them withLICENSEandREADME.md, writes a.sha256next to every archive, and copiesinstall.shintodist/<version>/mise run release:githubasks for the release type, builds the tag, generates notes from the commits since the last stable tag, and publishes everything withgh release create
After a release, bump the Homebrew formula from homebrew-tools with
mise run bump-elegant-git -- <tag>.
