A Git subcommand for managing named changelists — organise files by purpose before staging.
git-cl is a command-line tool that offers Git changelist support, inspired by Subversion. It allows users to assign working directory files to named changelists, helping organise work by intent, manage partial commits, and create branches directly from a changelist.
- Group files logically before staging using Git changelists
- Work on multiple features on a single branch
- Stage and commit changes by intent
- Stash changelists and resume work later
- Create a new branch directly from a changelist
- Local-only metadata (
.git/cl.json) - Simple CLI:
git cl <command>
git-cl lets you turn any changelist into a dedicated branch in one step.
# Install
mkdir -p ~/bin
wget https://raw.githubusercontent.com/BHFock/git-cl/main/git-cl -O ~/bin/git-cl
chmod +x ~/bin/git-cl
# Verify Installation
git cl --version
git cl help
# Use changelists inside a Git repository
git cl add fixup file1.py
git cl status
git cl commit fixup -m "Fix file1"
Make sure ~/bin is listed in your $PATH.
# Add files to a changelist
git cl add docs-fix README.md docs/index.md
# See changes grouped by changelist
git cl status
# Stage or commit changelists
git cl stage docs-fix
git cl commit docs-fix -m "Update documentation layout and intro"
# Keep the changelist after committing
git cl commit docs-fix -m "Fix bug" --keep
# Remove a file from its changelist
git cl remove README.md
# Delete a changelist
git cl delete docs-fix
# Temporarily stash a changelist and resume work on a new branch
git cl stash docs-fix
git checkout -b docs-fix-work
git cl unstash docs-fix
# Create and switch to a new branch from a changelist (auto-stash/unstash)
git cl br docs-fix📘 Full Tutorial: Guide with examples and FAQ
📘 Design Notes: Technical architecture
📘 Why git-cl?: History and motivation
- Requires Python 3.9+, Git, and a Unix-like OS
- Local-only; designed for single-user workflows
- Always inspect downloaded scripts before executing, see source
- For security concerns, see SECURITY
BSD 3-Clause — see LICENSE | CONTRIBUTING