# git related
# Aliases
alias g='git'
-alias gst='git status'
+
+# branch related
+#a# git branch base
+alias gb='git branch'
+#a# create a branch and switch to it
+alias gbc='git checkout -b'
+#a# show details for git branches
+alias gbl='git branch -v'
+#a# show details for git branches incl. remotes
+alias gbL='git branch -av'
+alias gba='git branch -av'
+#a# delete git branch
+alias gbx='git branch -d'
+#a# Move/rename a branch
+alias gbm='git branch -m'
+
+# commit
+#a# commit changes in git
+alias gc='git commit -v'
+#a# commit anything changed
+alias gca='git commit -v -a'
+#a# amend last git commit
+alias gca='git commit -v --amend'
+#a# revert a commit
+alias gcr='git revert'
+
+#a# cherry-pick
+alias gcp='git cherry-pick'
+
+alias ga='git add'
+alias gap='git add --patch'
+alias gau='git add --update'
+
+alias grh='git reset HEAD'
+alias grhh='git reset HEAD --hard'
+
+# clone/pull/fetch/push
+#a# fetch and merge from another repository (pull)
alias gl='git pull'
+#a# fetch and rebase from another repository
alias gup='git pull --rebase'
+#a# fetch another repository
+alias gf='git fetch'
+#a# clone another repository
+alias gcl='git clone'
+#a# push changes
alias gp='git push'
-alias gd='git diff'
-alias gdc='git diff --cached'
-alias gc='git commit -v'
-alias gca='git commit -v -a'
-alias gco='git checkout'
-alias gcm='git checkout master'
+#a# push everything to origin
+alias gpoat='git push origin --all && git push origin --tags'
+
+# remotes
alias gr='git remote'
alias grv='git remote -v'
alias grmv='git remote rename'
alias grrm='git remote remove'
alias grset='git remote set-url'
alias grup='git remote update'
-alias gb='git branch'
-alias gba='git branch -a'
+
+alias gcs='git show'
+alias gcR='git reset "HEAD^"'
+alias gco='git checkout'
+alias gcO='git checkout --patch'
+alias gm='git merge'
+
+alias gst='git status'
+alias gss='git status -s'
+
+alias gd='git diff'
+alias gdc='git diff --cached'
+
+alias gco='git checkout'
+alias gcm='git checkout master'
alias gcount='git shortlog -sn'
-alias gcl='git config --list'
-alias gcp='git cherry-pick'
alias glg='git log --stat --max-count=5'
alias glgg='git log --graph --max-count=5'
alias glgga='git log --graph --decorate --all'
-alias gss='git status -s'
-alias ga='git add'
-alias gm='git merge'
-alias grh='git reset HEAD'
-alias grhh='git reset HEAD --hard'
+alias gcl='git config --list'
alias gwc='git whatchanged -p --abbrev-commit --pretty=medium'
alias gf='git ls-files | grep'
-alias gpoat='git push origin --all && git push origin --tags'
alias gg='git grep'
# Will cd into the top of the current repository