improve the git scripts
- ID
8407347- date
2023-02-20 12:59:38+00:00- author
Alex Chan <alex@alexwlchan.net>- parent
84d5502- message
improve the git scripts- changed files
Changed files
git/_get_primary_branch (0) → git/_get_primary_branch (455)
diff --git a/git/_get_primary_branch b/git/_get_primary_branch
new file mode 100755
index 0000000..b5d90b2
--- /dev/null
+++ b/git/_get_primary_branch
@@ -0,0 +1,21 @@
+#!/usr/bin/env bash
+# Prints the name of the primary branch, e.g. main or live
+
+set -o errexit
+set -o nounset
+
+GIT_ROOT=$(git rev-parse --absolute-git-dir)
+
+if [[ -f "$GIT_ROOT/refs/remotes/origin/HEAD" ]]
+then
+ PRIMARY_BRANCH=$(cat "$GIT_ROOT/refs/remotes/origin/HEAD" \
+ | tr '/' ' ' \
+ | awk '{print $5}')
+elif [[ -f "$GIT_ROOT/refs/remotes/origin/live" ]]
+then
+ PRIMARY_BRANCH="live"
+else
+ PRIMARY_BRANCH="main"
+fi
+
+echo -e "$PRIMARY_BRANCH"
git/bad (219) → git/bad (265)
diff --git a/git/bad b/git/bad
index 42cb792..467e914 100755
--- a/git/bad
+++ b/git/bad
@@ -7,4 +7,6 @@
set -o errexit
set -o nounset
-git bisect bad
+pushd $(git rev-parse --show-toplevel)
+ git bisect bad
+popd
git/gc (0) → git/gc (97)
diff --git a/git/gc b/git/gc
new file mode 100755
index 0000000..dc4dbc4
--- /dev/null
+++ b/git/gc
@@ -0,0 +1,7 @@
+#!/usr/bin/env bash
+# alias for 'git checkout'
+
+set -o errexit
+set -o nounset
+
+git checkout "$@"
git/gm (469) → git/gm (158)
diff --git a/git/gm b/git/gm
index f5cad91..b190918 100755
--- a/git/gm
+++ b/git/gm
@@ -4,19 +4,5 @@
set -o errexit
set -o nounset
-GIT_ROOT=$(git rev-parse --absolute-git-dir)
-
-if [[ -f "$GIT_ROOT/refs/remotes/origin/HEAD" ]]
-then
- PRIMARY_BRANCH=$(cat "$GIT_ROOT/refs/remotes/origin/HEAD" \
- | tr '/' ' ' \
- | awk '{print $5}')
-elif [[ -f "$GIT_ROOT/refs/remotes/origin/live" ]]
-then
- PRIMARY_BRANCH="live"
-else
- PRIMARY_BRANCH="main"
-fi
-
-git checkout "$PRIMARY_BRANCH"
+git checkout "$(_get_primary_branch)"
gp
git/good (220) → git/good (266)
diff --git a/git/good b/git/good
index a3d8cf7..671f40d 100755
--- a/git/good
+++ b/git/good
@@ -7,4 +7,6 @@
set -o errexit
set -o nounset
-git bisect good
+pushd $(git rev-parse --show-toplevel)
+ git bisect good
+popd
git/grm (0) → git/grm (195)
diff --git a/git/grm b/git/grm
new file mode 100755
index 0000000..cce3726
--- /dev/null
+++ b/git/grm
@@ -0,0 +1,10 @@
+#!/usr/bin/env bash
+# Rebase against the latest version of the primary branch in the origin.
+
+set -o errexit
+set -o nounset
+
+gf
+git stash
+git rebase origin/"$(_get_primary_branch)"
+git stash pop