Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/rorybyrne/git-plan
Git Plan - a better workflow for git
https://github.com/rorybyrne/git-plan
cli git python workflow
Last synced: 3 days ago
JSON representation
Git Plan - a better workflow for git
- Host: GitHub
- URL: https://github.com/rorybyrne/git-plan
- Owner: rorybyrne
- License: mit
- Created: 2021-02-08T06:26:57.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-12-12T12:50:31.000Z (25 days ago)
- Last Synced: 2025-01-02T16:56:50.528Z (3 days ago)
- Topics: cli, git, python, workflow
- Language: Python
- Homepage:
- Size: 244 KB
- Stars: 180
- Watchers: 5
- Forks: 5
- Open Issues: 21
-
Metadata Files:
- Readme: README.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
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 `) 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](https://github.com/synek/git-plan/issues) if you find a bug
* Open a [discussion topic](https://github.com/synek/git-plan/discussions) if you have a suggestion or question
* [Fork](https://guides.github.com/activities/forking/) 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](https://pylint.org/) on changed source files
* [mypy](http://mypy-lang.org/) on changed source files
* [tox](https://tox.readthedocs.io/en/latest/) test suite runs## Background and Future Work
Here is an interesting [blog post](https://arialdomartini.wordpress.com/2012/09/03/pre-emptive-commit-comments/) about pre-emptive commit comments, and [another](https://rory.bio/posts/git-plan) 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.