gitshorts
42 git shortcuts + auto merge conflict resolver — zero AI, pure Python
pip install gitshorts
gitshorts install
ghelp
Why gitfast?
Before gitfast — 3 commands every commit:
git add .
git commit -m "fix login bug"
git push origin main
After gitfast — 1 command:
gcp "fix login bug"
Install
# install
pip install gitshorts
# setup
gitshorts install
# reload your shell
source ~/.bashrc # bash
source ~/.zshrc # zsh
source ~/.config/fish/config.fish # fish
# verify
ghelp
All Commands
TIER 1 — Daily
| Command | Does | Replaces |
|---|---|---|
gs |
git status short | git status |
gc "msg" |
add + commit | git add . && git commit -m |
gcp "msg" |
add + commit + push | 3 separate commands |
gpl |
pull current branch | git pull origin <branch> |
TIER 2 — Weekly
| Command | Does | Replaces |
|---|---|---|
gb |
list all branches | git branch -a |
gnb "name" |
new branch + push upstream | 2 commands |
gsw "branch" |
switch branch | git switch |
gm "branch" |
merge branch | git merge |
gl |
pretty log last 20 | git log --oneline --graph |
gll |
log with file stats | git log --stat |
gd |
diff summary | git diff --stat |
gdf "file" |
diff one file | git diff <file> |
gcl "url" |
clone repo | git clone |
TIER 3 — Rescue
| Command | Does | Replaces |
|---|---|---|
gundo |
undo last commit keep staged | git reset --soft HEAD~1 |
gundo2 |
undo last commit unstage | git reset HEAD~1 |
gsave "label" |
stash with label | git stash push -m |
gpop |
pop latest stash | git stash pop |
gstashes |
list all stashes | git stash list |
gdrop N |
drop stash N | git stash drop stash@{N} |
gsquash N |
squash last N commits | git rebase -i HEAD~N |
gabort |
abort merge or rebase | git merge --abort |
gnuke |
wipe all uncommitted changes | git reset --hard HEAD |
TIER 4 — Power
| Command | Does | Replaces |
|---|---|---|
gf |
fetch all remotes | git fetch --all --prune |
gtag v1.0 |
tag + push release | 2 commands |
gtags |
list all tags | git tag -l |
gwho "file" |
blame file | git blame |
greflog |
full history + deleted | git reflog |
gshow "hash" |
inspect commit | git show --stat |
gclean |
delete merged branches | complex command |
gremotes |
show all remotes | git remote -v |
AUTH
| Command | Does |
|---|---|
gtest_ssh |
test SSH to GitHub/GitLab/Bitbucket |
gsetup_ssh |
full SSH key setup in one command |
gsetup_creds |
configure OS credential helper |
ghttps_to_ssh |
convert HTTPS remote to SSH |
gauth_info |
show full auth status |
TOKEN
| Command | Does |
|---|---|
gtoken setup |
store GitHub PAT securely |
gtoken test |
verify token works |
gtoken refresh |
update expired token |
gtoken revoke |
remove stored token |
gtoken info |
show token status + expiry |
MERGE — The Killer Feature
| Command | Does |
|---|---|
gconflicts |
scan + list all conflicts |
gmerge |
auto resolve all conflicts |
gmerge -i |
interactive — pick ours/theirs per conflict |
gmerge --ours |
always keep our changes |
gmerge --theirs |
always keep their changes |
gmerge --dry-run |
show conflicts without resolving |
Auto Push Error Fix
gitfast automatically fixes the most common push error:
error: failed to push some refs hint: Updates were rejected because the remote hint: contains work that you do not have locally
When this happens gitfast: detects the error automatically pulls remote changes merges with your changes resolves conflicts if any pushes again
You never see this error with gitfast.
Token Security
gitfast stores your GitHub token in OS secure storage:
| OS | Storage |
|---|---|
| macOS | Keychain |
| Linux | GNOME Keyring |
| Windows | Credential Manager |
| Any OS | ~/.netrc (chmod 600) |
Token is never stored in plain text. Never in .bashrc. Never logged.
Shell Support
| Shell | Support |
|---|---|
| Bash | full |
| Zsh | full |
| Fish | full |
| PowerShell | full |
OS Support
| OS | Support |
|---|---|
| Ubuntu / Debian | full |
| Arch / Manjaro | full |
| Fedora / RHEL | full |
| macOS | full |
| WSL2 | full |
| Git Bash | full |
| Any OS | netrc fallback |
Uninstall
gitshorts uninstall
pip uninstall gitshorts
Update
gitshorts update
License
MIT — see LICENSE file
Author
Built for developers who live in the terminal.
gitshorts — 42 git shortcuts
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file gitshorts-1.0.4.tar.gz.
File metadata
- Download URL: gitshorts-1.0.4.tar.gz
- Upload date:
- Size: 40.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d1b8c7fa601bfa4efb435cdafa667f78114c4c37f5cff0f733681735d2b45603
|
|
| MD5 |
61c36cc8d4591aa484e168b07863bed6
|
|
| BLAKE2b-256 |
5ee197fe70c94fddc5f58e7d3ca3274a2e554efc19c534efa71423127cdfe4cb
|
File details
Details for the file gitshorts-1.0.4-py3-none-any.whl.
File metadata
- Download URL: gitshorts-1.0.4-py3-none-any.whl
- Upload date:
- Size: 50.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.14.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f21f2c8f68710426d99ab2f1e27ecc984b081911c84d012c4aae3633883b0336
|
|
| MD5 |
f8715da8f830fc01137f8122eaa7c4be
|
|
| BLAKE2b-256 |
22ef9600163f326cc596016d72ee330711a36ada12b365aa980e2895784d1724
|