Work smarter, commit faster
GitLazy (gz) removes the mental load of commits, saving you from filler text and freeing you from ever punching in xjvnsjfns again
How to install the package
gitlazy-cli 0.1.2
pip install gitlazy-cli
This installs the gz console script on your PATH.
Manual install (macOS / Linux)
sudo cp gz /usr/bin/gz # or, without sudo: mkdir -p ~/.local/bin cp gz ~/.local/bin/ chmod +x ~/.local/bin/gz # ensure ~/.local/bin is on your PATH
Manual install (Windows PowerShell or CMD)
- Install Python 3.8+ and Git.
- Save gz to %USERPROFILE%\bin\gz.
- Create gz.cmd somewhere on your PATH containing:
@echo off python "%USERPROFILE%\bin\gz" %*
Now gz is available globally.
Why do you need Gitlazy
gz is a cross-platform Git automation helper designed to streamline everyday workflows. It stages, summarizes, commits, rebases, and pushes changes with a single command, adapting intelligently to the state of your repository.
Core Features
- Works from any subdirectory by auto-detecting the repository root (or via an explicit path argument).
- Generates commit messages with [add], [refactor], or [removed] tags based on the staged changes.
- Summarizes added, modified, renamed, and removed files in the commit body.
- Performs git pull --rebase --autostash for safe synchronization.
- Pushes automatically when an upstream is configured and guides you when it is not.
- Handles conflicts gracefully by surfacing clear next steps.
Usage
# Run from the current repo gz # Target an explicit repo gz /path/to/repo # Or via python -m python -m gitlazy /path/to/repo
Example Output
[refactor] 2 updated, 1 added 3 files changed, 54 insertions(+), 23 deletions(-) Done. Changes committed, rebased, and pushed.
Behavior
- Always stages everything with git add -A.
- Skips committing when no changes are staged but still performs a safe pull/push.
- Skips pull/push and prints the upstream command when the current branch has no upstream configured.
- On pull failures, surfaces Git’s stderr and reminds you to finish any rebase with git rebase --continue before pushing.
- When no upstream is configured:
* git push --set-upstream origin <branch>
Acceptance Checks
- Add only: create a repo, add files, run gz → [add] <count> added.
- Modify + add: modify and add files, run gz → [refactor] … updated, … added.
- Rename + delete: rename and delete files, run gz → [removed] … renamed, … removed.
- No changes: run gz with a clean tree → prints “Nothing to commit. Syncing with remote…” and still pulls/pushes.
- New branch: run on a branch without upstream → shows git push --set-upstream origin <branch>.
- Cross-path: run from subfolders or via gz /path/to/repo → operates on the correct repository.
- Outside repo: run where no .git exists → exits with a helpful error message.
