From 76f6547281c3fc267bd87a50c76c56262c6431c7 Mon Sep 17 00:00:00 2001 From: Mike Harder Date: Tue, 21 Apr 2026 03:49:03 +0000 Subject: [PATCH] scripts to add/remove worktrees --- .bash_aliases | 5 +++++ git-worktree-add.sh | 15 +++++++++++++++ git-worktree-remove.sh | 12 ++++++++++++ 3 files changed, 32 insertions(+) create mode 100755 git-worktree-add.sh create mode 100755 git-worktree-remove.sh diff --git a/.bash_aliases b/.bash_aliases index 68b9a3a..746e2de 100644 --- a/.bash_aliases +++ b/.bash_aliases @@ -87,3 +87,8 @@ alias gsync='set -x; git checkout main; gh repo sync; git pull; { set +x; } 2>/d alias gw='git worktree' __git_complete gw _git_worktree + +alias gwa='~/scripts/git-worktree-add.sh' + +alias gwr='~/scripts/git-worktree-remove.sh' +__git_complete gwr _git_checkout diff --git a/git-worktree-add.sh b/git-worktree-add.sh new file mode 100755 index 0000000..283b20f --- /dev/null +++ b/git-worktree-add.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [[ $# -ne 1 ]]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +name=$1 + +git worktree add --no-checkout -b "$name" "../$name" +cd "../$name" +git sparse-checkout init --cone +git sparse-checkout set .github/actions .github/shared .github/workflows +git checkout diff --git a/git-worktree-remove.sh b/git-worktree-remove.sh new file mode 100755 index 0000000..d0a5b1b --- /dev/null +++ b/git-worktree-remove.sh @@ -0,0 +1,12 @@ +#!/usr/bin/env bash +set -euo pipefail + +if [[ $# -ne 1 ]]; then + echo "Usage: $0 " >&2 + exit 1 +fi + +name=$1 + +git worktree remove "../$name" +git branch -D "$name"