Command-line tool for fast git usage
Project description
Gutsy Git
Makes git usage extremely fast by making some gutsy assumptions.
Assumptions:
You work in a development environment based on pull request, avoiding pushing to your main branch. Commit messages are not always very relevant due to squashing. Your .gitignore is set up well enough to routinely add all changes.
Installation
pip install gutsygit
Usage
gg <any number of single letter commands> [<arguments>]
Commands:
b [<name>]
: Create a new branch from origin/main with generated or given name, stashing and applying uncommitted changes if needed.- If the branch exists, adds a numeric suffix to the name.
s <name>
: Switch to existing branch.c [<*message>]
: Commit changes.- Ensures you are not on your protected branches by creating a branch if needed.
- Add all changes, including untracked files, and commit them with a generated or given commit message.
- If a
b
ors
command remains after, argument(s) are assumed to be for the branch name, and the message is always generated. - Retries once on failure to automatically commit changes resulting from pre-commit hooks.
C [<*message>]
: Same asc
, but bypasses pre-commit hooks on the second try using--no-verify
.p
: Push commits.- Potentially pulls from remote if needed.
- Sets tracking for the remote branch with the same name on the first push.
P
: same asp
, but opens a web browser if an url is returned by git, as GitHub does for pull requests.l
: Pull
Examples
gg cP
: Commit and push changes with a generated commit message, and open a pull request page if suggested by the remote.gg bcp newbranch some description
: Create a new branch named "newbranch", commit, and push any changes that were not committed before this with the commit message "some description".gg Csl othertask
: Commit current changes regardless of commit hooks status, switch to 'othertask' branch and updates it.
Settings
Settings are retrieved from git config
with the gutsygit.[setting]
key:
Setting | Default value | Explanation |
---|---|---|
protectedbranches | "main,master" | comma-separated list of branch names to avoid pushing to. Also used to branch from for a new clean branch, taking the first entry found that exists in the remote. |
outputlevel | "0" | verbosity level (-1: debug, 1: headers/warnings/errors only) |
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
gutsygit-0.6.0.tar.gz
(7.0 kB
view details)
Built Distribution
File details
Details for the file gutsygit-0.6.0.tar.gz
.
File metadata
- Download URL: gutsygit-0.6.0.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca4ae77ff2bbd200af607300f48b8d581efe461b6375b625c746a31bc5cd16d5 |
|
MD5 | e2e92c986362fb15b6fe1ad2832ddd51 |
|
BLAKE2b-256 | 3f63c83aafeea273908db1d7abf831b58ae32290dd40ea008b2f31f53060ef16 |
File details
Details for the file gutsygit-0.6.0-py3-none-any.whl
.
File metadata
- Download URL: gutsygit-0.6.0-py3-none-any.whl
- Upload date:
- Size: 7.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.11
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 284be2fd3d869ed43fb6d311761fd9fe8940ce0ac5d69c99cf7056f1ab5eba76 |
|
MD5 | 977b81ac400dd7b789fc3d7348856992 |
|
BLAKE2b-256 | 93f338c5892c349a61aaed39cb30cde08ba823350c822ef7b7ea5bad2d3f3469 |