Skip to content

rorybyrne/git-plan

Repository files navigation

A better workflow for git.


Git plan allows you to write your commit messages in-advance, before you start coding. Then you can use those planned-commits as a template for your commit message when you are ready to commit your work. This makes it easier to plan your work and stay on-track.

This tool is in alpha stage. If anything breaks, please open an issue.

Installation

pip install git-plan

Usage

To use the tool, run git plan init (or simply gp <command>) to initialize, and then git plan add to plan a new commit. When you are ready to make a commit to git, use git plan commit to use the plan as a template for your commit message.

  • git plan init - initialize git plan in the .plan/ directory
  • git plan - create a new plan, or list existing plans
  • git plan --version - print version info
  • git plan --help - print help
  • git plan list [-l/--long] [-b/--branch] - list existing plans
  • git plan add - plan a new commit
  • git plan edit - edit an existing plan
  • git plan delete - delete a plan
  • git plan commit - commit your work, choosing a plan as your commit message template

Contributing

  • Download the tool and try it out
  • Create an issue if you find a bug
  • Open a discussion topic if you have a suggestion or question
  • Fork the repository, fix a bug or add a feature, and open a PR
  • If you'd like making a contribution please ask and we can help you.

Development

  • Clone: git clone https://github.com/synek/git-plan && cd git-plan
  • Create a virtualenv: python -m venv .venv && source .venv/bin/activate
  • Install: poetry install (installs in the virtualenv)
  • Check: git plan --version or gp --version (must be run from within the virtualenv)
  • Run tests: tox
  • Install pre-commit hooks: poetry run pre-commit install

The minimum requirement is python3.6.

Pre-Commit hooks

Failure on any of the hooks will prevent the action taking place.

  • pylint on changed source files
  • mypy on changed source files
  • tox test suite runs

Background and Future Work

Here is an interesting blog post about pre-emptive commit comments, and another about this project itself.

The next step for git plan is to add support for importing plans from Github and Linear. There is a gap between "project planning" tools like Linear, and "project building" tools like git. I'd like to close that gap.

After that, I would like to make it less painful to context-switch while writing code. git plan will be able to context-switch with you, and automatically stage your changes for you when you want to commit your work.