diff --git a/.local/bin/git-cln b/.local/bin/git-cln new file mode 100755 index 0000000..7481364 --- /dev/null +++ b/.local/bin/git-cln @@ -0,0 +1,2 @@ +#!/usr/bin/env bash +sh ~/.local/bin/git-worktree-setup.sh "$@" diff --git a/.local/bin/git-worktree-setup.sh b/.local/bin/git-worktree-setup.sh new file mode 100644 index 0000000..2e61811 --- /dev/null +++ b/.local/bin/git-worktree-setup.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env bash + +set -e + +url=$1 +basename=${url##*/} +name=${2:-${basename%.*}} + +mkdir -p "$name" +cd "$name" + +git clone --bare "$url" .bare +echo "gitdir: ./.bare" > .git + +git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" +git fetch origin + +default_branch=$(git symbolic-ref refs/remotes/origin/HEAD | sed 's@^refs/remotes/origin/@@') +git worktree add "$default_branch" + +osascript -e "tell application \"Terminal\" to do script \"cd '$PWD/$default_branch' && clear\" in front window"