44 lines
1.1 KiB
Markdown
44 lines
1.1 KiB
Markdown
---
|
|
description: Clean up local branches deleted from remote
|
|
---
|
|
|
|
# Clean Gone Branches
|
|
|
|
Remove local git branches that have been deleted from remote (marked as [gone]).
|
|
|
|
## Instructions
|
|
|
|
Run the following commands in sequence:
|
|
|
|
1. **Update remote references:**
|
|
```bash
|
|
git fetch --prune
|
|
```
|
|
|
|
2. **View branches marked as [gone]:**
|
|
```bash
|
|
git branch -vv
|
|
```
|
|
|
|
3. **List worktrees (if any):**
|
|
```bash
|
|
git worktree list
|
|
```
|
|
|
|
4. **Remove worktrees for gone branches (if any):**
|
|
```bash
|
|
git branch -vv | grep '\[gone\]' | awk '{print $1}' | sed 's/^[*+]*//' | while read -r branch; do
|
|
worktree=$(git worktree list | grep "\[$branch\]" | awk '{print $1}')
|
|
if [ -n "$worktree" ]; then
|
|
echo "Removing worktree: $worktree"
|
|
git worktree remove --force "$worktree"
|
|
fi
|
|
done
|
|
```
|
|
|
|
5. **Delete gone branches:**
|
|
```bash
|
|
git branch -vv | grep '\[gone\]' | awk '{print $1}' | sed 's/^[*+]*//' | xargs -I {} git branch -D {}
|
|
```
|
|
|
|
Report the results: list of removed worktrees and deleted branches, or notify if no [gone] branches exist. |