Skip to main content

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
6 files, 45 additions, 17 deletions

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