Skip to main content

GitForge

Practical Git workflow automation for branches, snapshots, releases, and repository hygiene.

PyPI Python License Stars


GitForge is a terminal-first Git workflow assistant for developers who want repeatable branch naming, safer commits, fast repository health checks, release tags, changelogs, branch cleanup, and ref comparisons without memorizing a pile of shell snippets. It uses the real Git executable, prints clean Rich tables, and keeps every operation explicit so it fits normal local and CI workflows.

  • Repository health checks - inspect branch, upstream, dirty state, remotes, conflicts, and local Git identity.
  • Branch automation - turn ticket titles into consistent branch names and optionally switch to them.
  • Snapshot commits - stage tracked or all files, commit with guardrails, and optionally push.
  • Release tagging - create annotated semantic-version tags with dirty-tree protection.
  • Changelog generation - group commit history into Markdown or JSON output.
  • Cleanup and compare tools - remove merged branches safely and summarize ref differences.

Installation

pip install gitforge-cli

The installed console command is:

gitforge --help

Usage

Inspect a repository:

gitforge status --repo .
gitforge doctor --repo .

Create a workflow branch:

gitforge branch "Add OAuth callback validation" --ticket AUTH-42 --prefix feature

Commit a snapshot:

gitforge snapshot -m "Implement OAuth callback validation"

Generate a changelog:

gitforge changelog --since v0.1.0 --output CHANGELOG.md

Create a release tag:

gitforge release 1.2.0 --push

Commands

Command Description Example
gitforge status Show branch, upstream, dirty state, remote, and last tag. gitforge status --json
gitforge doctor Check Git availability, repo state, identity, remote, upstream, and conflicts. gitforge doctor
gitforge branch <title> Create a normalized branch name from a ticket/title. gitforge branch "Fix login" --ticket WEB-7
gitforge snapshot Stage changes and commit with safety checks. gitforge snapshot -m "Fix login"
gitforge sync Fetch, pull with rebase or merge, and optionally push. gitforge sync --autostash
gitforge release <version> Create an annotated release tag. gitforge release 1.0.0
gitforge changelog Render commit history as grouped Markdown or JSON. gitforge changelog --max-count 25
gitforge compare <base> [head] Compare two refs by unique commits and changed files. gitforge compare main HEAD
gitforge cleanup List or delete merged local branches. gitforge cleanup --apply
gitforge ignore Append built-in .gitignore templates. gitforge ignore python macos

Configuration

GitForge intentionally uses standard Git configuration instead of its own config file.

git config user.name "Your Name"
git config user.email "you@example.com"
git remote add origin git@github.com:you/project.git
git branch --set-upstream-to origin/main main

Most commands accept --repo so they can operate on another checkout without changing directories.

License

MIT License. See LICENSE.

Metadata

Release files for gitforge-cli 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for gitforge-cli 0.1.0
File Size Uploaded
gitforge_cli-0.1.0.tar.gz 14.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for gitforge-cli 0.1.0
File Interpreter ABI Platform
gitforge_cli-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 28.7 kB

Release files / gitforge_cli-0.1.0.tar.gz

Download URL gitforge_cli-0.1.0.tar.gz
Size 14.4 kB
Tags Source
SHA-256 checksum
How to use checksums
6d587e24509e36fde2e2e418fabd3fd96e4280766708e0fca577e81bc61ede65
BLAKE2b-256 checksum
How to use checksums
fb05a43ecd42fc11a02599da80fc92a978277457ed852856c6dd6bdf6e86b315
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13

Release files / gitforge_cli-0.1.0-py3-none-any.whl

Download URL gitforge_cli-0.1.0-py3-none-any.whl
Size 14.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a350805d58755a9ca6d28d28945a066fe62e93116d1f280f63036a28699b93c3
BLAKE2b-256 checksum
How to use checksums
cfef18dfdb2632f492a91cd046e2877269f999153fbc0d045264f67d2c3155d5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.13

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page