]> git.phdru.name Git - git-scripts.git/blobdiff - detached-head/fix-detached-head
Feat: Fix detached `HEAD`
[git-scripts.git] / detached-head / fix-detached-head
diff --git a/detached-head/fix-detached-head b/detached-head/fix-detached-head
new file mode 100755 (executable)
index 0000000..7be050a
--- /dev/null
@@ -0,0 +1,19 @@
+#! /usr/bin/env bash
+
+git symbolic-ref -q HEAD >/dev/null && exit
+
+pwd
+
+declare -a branches
+branches=(`git branch --points-at=HEAD | tail -n +2`)
+if [ "${#branches[*]}" -eq 0 ]; then
+   branches=(`git branch --points-at=HEAD -r | sed 's!^ *origin/!!'`)
+fi
+
+if [ "${#branches[*]}" -eq 0 ]; then
+   echo "Cannot find a branch" >&2
+elif [ "${#branches[*]}" -eq 1 ]; then
+   git checkout "${branches[0]}"
+else
+   echo "Too many branches" >&2
+fi