Skip to content

Repository files navigation

Elegant Git

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 👇👇👇 to see a demo.

Elegant Git Demo



The contribution process at a glance

  1. Everyone contributing is governed by the Code of Conduct - please read it
  2. After, please get familiar with project rules described in CONTRIBUTING.md.
  3. Make a contribution

🎉🎉🎉 That's all! 🎉🎉🎉

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

git elegant … runs the Go binary built from cmd/git-elegant, 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

  1. Install mise
  2. Run mise run init once after clone
  3. Use mise run build to produce dist/git-elegant

Checks and tests

  • Format and lint: mise run fix (CI runs mise 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 with LICENSE and README.md, writes a .sha256 next to every archive, and copies install.sh into dist/<version>/
  • mise run release:github asks for the release type, builds the tag, generates notes from the commits since the last stable tag, and publishes everything with gh release create

About

Elegant Git is an assistant who carefully automates routine work with Git.

Topics

Resources

Code of conduct

Contributing

Stars

45 stars

Watchers

8 watching

Forks

Releases

Packages

Used by

Contributors

Languages