diff --git a/merge-conflict b/merge-conflict
index 12853e314e9a4cc885c53329950974622bd7ab07..f8eea80e5a1b221ff6f6a1107bd6c939f2aa986a 100755
--- a/merge-conflict
+++ b/merge-conflict
@@ -2,7 +2,7 @@
 set -eu
 
 dest="${1:-master}"
-current="$(git symbolic-ref --short HEAD)"
+current="$(git symbolic-ref --short HEAD)" || exit 0  # Detached head.
 
 [ "$current" != "$dest" ] || exit 0
 
diff --git a/tests/merge-conflict.bats b/tests/merge-conflict.bats
index f2af693757d0796d14e78df91e863c903f9e6426..5b603cec74e4fbf41da941ef18a6fbf1c1c2ebaf 100755
--- a/tests/merge-conflict.bats
+++ b/tests/merge-conflict.bats
@@ -25,6 +25,12 @@ export repo="$BATS_TMPDIR/testrepo"
     fi
 }
 
+@test "Detached head" {
+    cd "$repo"
+    git checkout "$(git rev-parse HEAD)"
+    merge-conflict
+}
+
 @test "Same branch" {
     cd "$repo"
     git checkout master || true