# git-commitflow - A Git add/diff/commit/push Helper
The `git-commitflow` is command-line interface that assists with the Git operations of adding (`git add`), viewing differences (`git diff`), committing changes (`git commit`), and pushing updates (`git push`).
One significant benefit of the `git-commitflow` tool is that it enhances the user's awareness and control over their changes before committing. By providing a simple command-line interface for viewing differences with `git diff`, users can carefully review modifications and ensure they are committing only the intended changes. This reduces the likelihood of including unintended files or alterations in commits, promoting a cleaner and more organized version history. Additionally, the tool simplifies the workflow for adding, committing, and pushing changes, making the overall Git experience more efficient and user-friendly.
## Requirements
- git >= 2.6
- Python and pip
## Installation
Here is how to install `git-commitflow` using [pip](https://pypi.org/project/pip/):
```
pip install --user git-commitflow
```
The pip command above will install the `git-commitflow` executable in the directory `~/.local/bin/`.
## Usage
### Example usage
To use the tool within your Git repository, run:
```bash
git commitflow
```
This command will guide you through the following steps interactively:
- **Stage untracked files**: Prompts you to `git add` any untracked files that haven't been staged.
- **Review changes**: Displays a diff of your changes, allowing you to confirm whether you want to proceed with the commit.
- **Commit changes**: Once you validate your commit message, the tool will finalize the commit.
If you also wish to push the changes, you can use the `--push` option:
```bash
git commitflow --push
```
This will git add, diff, commit, push your changes to the remote repository after the commit.
### Command-line arguments
```
usage: git-commitflow [--option] [args]
Readline manager.
options:
-h, --help show this help message and exit
-p, --push Git push after a successful commit
-r, --recursive Apply git-commitflow to all submodules
```
## Customizations
### Git configuration alias
To enhance your workflow, add the following aliases to your `~/.gitconfig` file:
```ini
[alias]
ci = commitflow
cip = commitflow --push
```
With these aliases, you can conveniently use the commands `git ci` to commit changes and `git cip` to commit and push in a single step.
## License
Copyright (c) 2020-2024 [James Cherti](https://www.jamescherti.com)
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
## Links
- [git-commitflow @GitHub](https://github.com/jamescherti/git-commitflow)
- [git-commitflow @PyPI](https://pypi.org/project/git-commitflow/)
Raw data
{
"_id": null,
"home_page": "https://github.com/jamescherti/git-commitflow",
"name": "git-commitflow",
"maintainer": null,
"docs_url": null,
"requires_python": "<4,>=3.6",
"maintainer_email": null,
"keywords": null,
"author": "James Cherti",
"author_email": null,
"download_url": "https://files.pythonhosted.org/packages/59/39/9c09047c8d9de2be6f2431ea8d3c15d53895af816e7a48f1c139dc3662d2/git-commitflow-1.0.3.tar.gz",
"platform": null,
"description": "# git-commitflow - A Git add/diff/commit/push Helper\n\nThe `git-commitflow` is command-line interface that assists with the Git operations of adding (`git add`), viewing differences (`git diff`), committing changes (`git commit`), and pushing updates (`git push`).\n\nOne significant benefit of the `git-commitflow` tool is that it enhances the user's awareness and control over their changes before committing. By providing a simple command-line interface for viewing differences with `git diff`, users can carefully review modifications and ensure they are committing only the intended changes. This reduces the likelihood of including unintended files or alterations in commits, promoting a cleaner and more organized version history. Additionally, the tool simplifies the workflow for adding, committing, and pushing changes, making the overall Git experience more efficient and user-friendly.\n\n## Requirements\n\n- git >= 2.6\n- Python and pip\n\n## Installation\n\nHere is how to install `git-commitflow` using [pip](https://pypi.org/project/pip/):\n```\npip install --user git-commitflow\n```\n\nThe pip command above will install the `git-commitflow` executable in the directory `~/.local/bin/`.\n\n## Usage\n\n### Example usage\n\nTo use the tool within your Git repository, run:\n\n```bash\ngit commitflow\n```\n\nThis command will guide you through the following steps interactively:\n\n- **Stage untracked files**: Prompts you to `git add` any untracked files that haven't been staged.\n- **Review changes**: Displays a diff of your changes, allowing you to confirm whether you want to proceed with the commit.\n- **Commit changes**: Once you validate your commit message, the tool will finalize the commit.\n\nIf you also wish to push the changes, you can use the `--push` option:\n\n```bash\ngit commitflow --push\n```\n\nThis will git add, diff, commit, push your changes to the remote repository after the commit.\n\n### Command-line arguments\n\n```\nusage: git-commitflow [--option] [args]\n\nReadline manager.\n\noptions:\n -h, --help show this help message and exit\n -p, --push Git push after a successful commit\n -r, --recursive Apply git-commitflow to all submodules\n```\n\n## Customizations\n\n### Git configuration alias\n\nTo enhance your workflow, add the following aliases to your `~/.gitconfig` file:\n\n```ini\n[alias]\nci = commitflow\ncip = commitflow --push\n```\n\nWith these aliases, you can conveniently use the commands `git ci` to commit changes and `git cip` to commit and push in a single step.\n\n## License\n\nCopyright (c) 2020-2024 [James Cherti](https://www.jamescherti.com)\n\nThis program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.\n\nThis program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.\n\nYou should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.\n\n## Links\n\n- [git-commitflow @GitHub](https://github.com/jamescherti/git-commitflow)\n- [git-commitflow @PyPI](https://pypi.org/project/git-commitflow/)\n",
"bugtrack_url": null,
"license": null,
"summary": "A git add/commit/push helper",
"version": "1.0.3",
"project_urls": {
"Homepage": "https://github.com/jamescherti/git-commitflow"
},
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7cdca7a1dba6848ffd1f60904ce83957d1d84993bdd63159cce420624ca510a3",
"md5": "d9118c83d2109821397a25c631687c29",
"sha256": "32cd05dca5106e645b19818c3cfc43a35a26c5849edf03c04142ca0312dae38b"
},
"downloads": -1,
"filename": "git_commitflow-1.0.3-py3-none-any.whl",
"has_sig": false,
"md5_digest": "d9118c83d2109821397a25c631687c29",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4,>=3.6",
"size": 12319,
"upload_time": "2024-11-17T19:59:47",
"upload_time_iso_8601": "2024-11-17T19:59:47.855140Z",
"url": "https://files.pythonhosted.org/packages/7c/dc/a7a1dba6848ffd1f60904ce83957d1d84993bdd63159cce420624ca510a3/git_commitflow-1.0.3-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "59399c09047c8d9de2be6f2431ea8d3c15d53895af816e7a48f1c139dc3662d2",
"md5": "7c2f3d0e597fe933808843b13e998964",
"sha256": "f0146db77c6db1706e8051ad5cb992bbee378eed2c22724ca724bcbd84a02c1c"
},
"downloads": -1,
"filename": "git-commitflow-1.0.3.tar.gz",
"has_sig": false,
"md5_digest": "7c2f3d0e597fe933808843b13e998964",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4,>=3.6",
"size": 10186,
"upload_time": "2024-11-17T19:59:49",
"upload_time_iso_8601": "2024-11-17T19:59:49.167422Z",
"url": "https://files.pythonhosted.org/packages/59/39/9c09047c8d9de2be6f2431ea8d3c15d53895af816e7a48f1c139dc3662d2/git-commitflow-1.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-11-17 19:59:49",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "jamescherti",
"github_project": "git-commitflow",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "git-commitflow"
}