#!/bin/sh BRANCH=$(git branch --no-color --list | grep '^\*' | awk '{print $2}') if [[ "$BRANCH" != "(detached" ]]; then STASH_OUTPUT=$(git stash) if [[ "$STASH_OUTPUT" = "No local changes to save" ]]; then POP_STASH=0 else POP_STASH=1 fi git fetch --prune --tags origin && git rebase "origin/$BRANCH" && ([[ $POP_STASH -eq 1 ]] && git stash pop) || true else echo "Cannot update in a detached HEAD state" fi