aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.alias.d/10-git17
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() {
nihil fit ex nihilo