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-gitfisher:
fisher install jhillyerd/plugin-gitNix'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.defaultBranchif it is set and the branch existsmainif it existsmasteras 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 |
GitLab-specific push options
| 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