A git aliases plugin for Oh My Fish and Fisher,
based loosely on the Oh My Zsh Git Plugin.
oh-my-fish:
$ omf install https://github.com/jhillyerd/plugin-git
fisher:
$ fisher install jhillyerd/plugin-git
Nix's home-manager:
{
# ...
programs.fish = {
enable = true;
plugins = [
{
name = "plugin-git";
src = pkgs.fishPlugins.plugin-git.src;
}
];
};
# ...
}
plugin-git
respects init.defaultBranch
setting that was introduced in git 2.28.
The order for resolving the default branch name is as follows:
init.defaultBranch
if it is set and the branch exists
main
if it exists
master
as fallback
cd my-repo # enter a git repo
gss # check current status
.. bunch of old edits I don't want ..
gclean!! # pristine repo!!
gcom # checkout main/master branch
gl # pull changes
gcb fix-bug # create new fix-bug branch
.. edit files ..
gaa # add (stage) all changed and new files
gc # commit changes
gpu # push to origin, set upstream
.. oops, edit more files ..
gcan! # amend commit w/ all modified files, re-using message
gp! # force push changes
.. main branch has some changes I need ..
grbom # fetch origin and rebase on main/master
.. editing some files, but need to work on something else quickly ..
gwip # save WIP commit of working directory for later
gfa # fetch all branches from origin
gloga # view log graph of all recent repo activity
gco feature # switch to existing feature branch
gwch # inspect what changed recently (with diffs)
.. edit lots of files ..
ga file1 file2 # add just the files I want to commit
.. hmm, will my tests pass with just these two files? ..
gtest make test # runs 'make test' against staged changes only
.. failed! need to patch in some other changes ..
gapa # selectively stage more changes
gtest make test
gcm "tests pass" # commit staged w/ message
gca # commit all other modified files
gp # push
.. back to my bugfix ..
gco fix-bug # checkout
gunwip # restore work in progress
Abbreviation |
Command |
gbs |
git bisect |
gbsb |
git bisect bad |
gbsg |
git bisect good |
gbsr |
git bisect reset |
gbss |
git bisect start |
Abbreviation |
Command |
gb |
git branch -vv |
gba |
git branch -a -v |
gban |
git branch -a -v --no-merged |
gbd |
git branch -d |
gbD |
git branch -D |
gbda |
delete all branches merged in current HEAD |
gbage |
list local branches and display their age |
ggsup |
git branch --set-upstream-to=origin/(__git.current_branch) |
grename |
rename old branch to new, including in origin remote |
Abbreviation |
Command |
gco |
git checkout |
gcod |
git checkout develop |
gcom |
git checkout (__git.default_branch) |
gcb |
git checkout -b |
Abbreviation |
Command |
gc |
git commit -v |
gc! |
git commit -v --amend |
gcn! |
git commit -v --no-edit --amend |
gca |
git commit -v -a |
gca! |
git commit -v -a --amend |
gcan! |
git commit -v -a --no-edit --amend |
gcv |
git commit -v --no-verify |
gcav |
git commit -a -v --no-verify |
gcav! |
git commit -a -v --no-verify --amend |
gcm |
git commit -m |
gcam |
git commit -a -m |
gcs |
git commit -S |
gscam |
git commit -S -a -m |
gcfx |
git commit --fixup |
Abbreviation |
Command |
gd |
git diff |
gdca |
git diff --cached |
gds |
git diff --stat |
gdsc |
git diff --stat --cached |
gdt |
list changed files |
gdw |
git diff --word-diff |
gdwc |
git diff --word-diff --cached |
gdto |
git difftool |
gdg |
git diff --no-ext-diff |
gdv |
pipe git diff to view command |
Abbreviation |
Command |
gfb |
git flow bugfix |
gff |
git flow feature |
gfr |
git flow release |
gfh |
git flow hotfix |
gfs |
git flow support |
gfbs |
git flow bugfix start |
gffs |
git flow feature start |
gfrs |
git flow release start |
gfhs |
git flow hotfix start |
gfss |
git flow support start |
gfbt |
git flow bugfix track |
gfft |
git flow feature track |
gfrt |
git flow release track |
gfht |
git flow hotfix track |
gfst |
git flow support track |
gfp |
git flow publish |
Abbreviation |
Command |
gcount |
git shortlog -sn |
glg |
git log --stat |
glgg |
git log --graph |
glgga |
git log --graph --decorate --all |
glo |
git log --oneline --decorate --color |
gloo |
git log --pretty=format:'%C(yellow)%h %Cred%ad %Cblue%an%Cgreen%d %Creset%s' --date=short |
glog |
git log --oneline --decorate --color --graph |
gloga |
git log --oneline --decorate --color --graph --all |
glom |
git log --oneline --decorate --color (__git.default_branch).. |
glod |
git log --oneline --decorate --color develop.. |
glp |
git log at requested pretty level |
gwch |
git whatchanged -p --abbrev-commit --pretty=medium |
Abbreviation |
Command |
gl |
git pull |
ggl |
git pull origin (__git.current_branch) |
gup |
git pull --rebase |
gupv |
git pull --rebase -v |
gupa |
git pull --rebase --autostash |
gupav |
git pull --rebase --autostash -v |
glr |
git pull --rebase |
gp |
git push |
gp! |
git push --force-with-lease |
gpo |
git push origin |
gpo! |
git push --force-with-lease origin |
gpv |
git push --no-verify |
gpv! |
git push --no-verify --force-with-lease |
ggp |
git push origin (__git.current_branch) |
ggp! |
git push origin (__git.current_branch) --force-with-lease |
gpu |
git push origin (__git.current_branch) --set-upstream |
gpoat |
git push origin --all; and git push origin --tags |
ggpnp |
pull & push origin current-branch |
Abbreviation |
Command |
grb |
git rebase |
grba |
git rebase --abort |
grbc |
git rebase --continue |
grbi |
git rebase --interactive |
grbm |
git rebase (__git.default_branch) |
grbmi |
git rebase (__git.default_branch) --interactive |
grbmia |
git rebase (__git.default_branch) --interactive --autosquash |
grbom |
git fetch origin (__git.default_branch); and git rebase FETCH_HEAD |
grbomi |
git fetch origin (__git.default_branch); and git rebase FETCH_HEAD --interactive |
grbomia |
git fetch origin (__git.default_branch); and git rebase FETCH_HEAD --interactive --autosquash |
grbd |
git rebase develop |
grbdi |
git rebase develop --interactive |
grbdia |
git rebase develop --interactive --autosquash |
grbs |
git rebase --skip |
ggu |
git pull --rebase origin \(__git.current_branch\) |
Abbreviation |
Command |
gr |
git remote -vv |
gra |
git remote add |
grmv |
git remote rename |
grpo |
git remote prune origin |
grrm |
git remote remove |
grset |
git remote set-url |
grup |
git remote update |
grv |
git remote -v |
Abbreviation |
Command |
gsta |
git stash |
gstd |
git stash drop |
gstl |
git stash list |
gstp |
git stash pop |
gsts |
git stash show --text |
gtest |
runs specified command against staged files only |
gwip |
commit a work-in-progress branch |
gunwip |
uncommit the work-in-progress branch |
Abbreviation |
Command |
gts |
git tag -s |
gtv |
git tag | sort -V |
gtl |
list tags matching prefix |
Abbreviation |
Command |
ga |
git add |
gaa |
git add --all |
gau |
git add --update |
gapa |
git add --patch |
grm |
git rm |
grmc |
git rm --cached |
grs |
git restore |
grss |
git restore --source |
grst |
git restore --staged |
Abbreviation |
Command |
gwt |
git worktree |
gwta |
git worktree add |
gwtls |
git worktree list |
gwtlo |
git worktree lock |
gwtmv |
git wortree remove |
gwtpr |
git worktree prune |
gwtulo |
git worktree unlock |
Abbreviation |
Command |
gmr |
Push current branch and create a merge request from it |
gmwps |
Same as gmr but set the merge request to merge when the pipeline succeeds |
Abbreviation |
Command |
g |
git |
gap |
git apply |
gbl |
git blame -b -w |
gcf |
git config --list |
gcl |
git clone |
gclean |
git clean -di |
gclean! |
git clean -dfx |
gclean!! |
git reset --hard; and git clean -dfx |
gcp |
git cherry-pick |
gcpa |
git cherry-pick --abort |
gcpc |
git cherry-pick --continue |
gignore |
git update-index --assume-unchanged |
gignored |
list temporarily ignored files |
gf |
git fetch |
gfa |
git fetch --all --prune |
gfm |
git fetch origin (__git.default_branch) --prune; and git merge FETCH_HEAD |
gfo |
git fetch origin |
gm |
git merge |
gmt |
git mergetool --no-prompt |
gmom |
git merge origin/(__git.default_branch) |
grev |
git revert |
grh |
git reset HEAD |
grhh |
git reset HEAD --hard |
grhpa |
git reset --patch |
grt |
cd into the top of the current repository or submodule |
gsh |
git show |
gsd |
git svn dcommit |
gsr |
git svn rebase |
gsb |
git status -sb |
gss |
git status -s |
gst |
git status |
gsu |
git submodule update |
gsur |
git submodule update --recursive |
gsuri |
git submodule update --recursive --init |
gsw |
git switch |
gswc |
git switch --create |
gunignore |
git update-index --no-assume-unchanged |
MIT © James Hillyerd et al