{"id":23863411,"url":"https://github.com/rorybyrne/git-plan","last_synced_at":"2025-04-04T16:14:19.366Z","repository":{"id":52891595,"uuid":"336980883","full_name":"rorybyrne/git-plan","owner":"rorybyrne","description":"Git Plan - a better workflow for git","archived":false,"fork":false,"pushed_at":"2024-12-12T12:50:31.000Z","size":250,"stargazers_count":180,"open_issues_count":21,"forks_count":5,"subscribers_count":5,"default_branch":"main","last_synced_at":"2025-03-28T15:07:36.065Z","etag":null,"topics":["cli","git","python","workflow"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rorybyrne.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-02-08T06:26:57.000Z","updated_at":"2025-02-18T18:06:12.000Z","dependencies_parsed_at":"2024-12-12T13:29:07.781Z","dependency_job_id":null,"html_url":"https://github.com/rorybyrne/git-plan","commit_stats":null,"previous_names":["synek/git-plan"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorybyrne%2Fgit-plan","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorybyrne%2Fgit-plan/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorybyrne%2Fgit-plan/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rorybyrne%2Fgit-plan/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rorybyrne","download_url":"https://codeload.github.com/rorybyrne/git-plan/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247208145,"owners_count":20901570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","git","python","workflow"],"created_at":"2025-01-03T07:59:35.659Z","updated_at":"2025-04-04T16:14:19.343Z","avatar_url":"https://github.com/rorybyrne.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://user-images.githubusercontent.com/9436784/110315084-a7e39f80-8000-11eb-8a14-3799c7e2cfd3.png\"\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003cb\u003eA better workflow for git.\u003c/b\u003e\n\u003c/p\u003e\n\u003chr\u003e\u003c/hr\u003e\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/synek/git-plan/workflows/Full%20Tests/badge.svg\"\u003e\n\u003c/p\u003e\n\nGit 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.\n\nThis tool is in *alpha* stage. If anything breaks, please open an issue.\n\n## Installation\n\n`pip install git-plan`\n\n## Usage\nTo use the tool, run `git plan init` (or simply `gp \u003ccommand\u003e`) 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.\n\n* `git plan init` - initialize git plan in the `.plan/` directory\n* `git plan` - create a new plan, or list existing plans\n* `git plan --version` - print version info\n* `git plan --help` - print help\n* `git plan list [-l/--long] [-b/--branch]` - list existing plans\n* `git plan add` - plan a new commit\n* `git plan edit` - edit an existing plan\n* `git plan delete` - delete a plan\n* `git plan commit` - commit your work, choosing a plan as your commit message template\n\n## Contributing\n\n* Download the tool and try it out\n* Create an [issue](https://github.com/synek/git-plan/issues) if you find a bug\n* Open a [discussion topic](https://github.com/synek/git-plan/discussions) if you have a suggestion or question\n* [Fork](https://guides.github.com/activities/forking/) the repository, fix a bug or add a feature, and open a PR\n* If you'd like making a contribution please ask and we can help you.\n\n### Development\n\n* Clone: `git clone https://github.com/synek/git-plan \u0026\u0026 cd git-plan`\n* Create a virtualenv: `python -m venv .venv \u0026\u0026 source .venv/bin/activate`\n* Install: `poetry install`  (installs in the virtualenv)\n* Check: `git plan --version` or `gp --version`  (must be run from within the virtualenv)\n* Run tests: `tox`\n* Install pre-commit hooks: `poetry run pre-commit install`\n\nThe minimum requirement is `python3.6`.\n\n### Pre-Commit hooks\n\nFailure on any of the hooks will prevent the action taking place.\n\n* [pylint](https://pylint.org/) on changed source files\n* [mypy](http://mypy-lang.org/) on changed source files\n* [tox](https://tox.readthedocs.io/en/latest/) test suite runs\n\n## Background and Future Work\nHere 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.\n\nThe 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.\n\nAfter 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.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frorybyrne%2Fgit-plan","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frorybyrne%2Fgit-plan","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frorybyrne%2Fgit-plan/lists"}