diff options
| -rw-r--r-- | .alias.d/10-git | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/.alias.d/10-git b/.alias.d/10-git index ac82cda..48246c1 100644 --- a/.alias.d/10-git +++ b/.alias.d/10-git @@ -139,10 +139,19 @@ main_branch() { } gcm() { - branch=$(main_branch) - git checkout "$branch" - git fetch upstream - git reset --hard "upstream/${branch}" + local branch + + branch=$(main_branch) || return + + if ! git diff --quiet || ! git diff --cached --quiet; then + echo "Aborting: you have uncommitted changes." + git status --short + return 1 + fi + + git checkout "$branch" || return + git fetch origin || return + git reset --hard "origin/${branch}" } gfr() { |
