반응형
Git Branch 삭제 UI 만들기
버전 관리하다 보면 로컬 브랜치 정리하는 경우가 있다.
브랜치 삭제하려면
목록(이름)을 확인하고 브랜치명을 가지고 삭제하는데
이번 포스팅에서는 각 로컬 브랜치에 번호를 부여해서
번호를 입력하면 해당 브랜치가 삭제하여 UX/UI 효율을 높이고자 한다.
• 현재 브랜치와 Master 브랜치는 목록에서 제외
• Ctrl + C해도 종료되지만 X 누르면 종료
#!/bin/bash
while true; do
# 현재 브랜치명
current_branch=$(git branch --show-current)
# 현재 브랜치 목록 가져오기
branches=$(git branch)
# 브랜치를 배열로 변환
branch_array=()
while IFS= read -r branch; do
# (공백 및 '*' 제거)
branch=$(echo "$branch" | sed 's/^\* //; s/^[[:space:]]*//; s/[[:space:]]*$//')
# master 브랜치와 현재 브랜치 제외
if [[ "$branch" != "master" && "$branch" != "$current_branch" ]]; then
branch_array+=("$branch")
fi
done <<< "$branches"
# branch_array 크기 확인
if [[ ${#branch_array[@]} -eq 0 ]]; then
echo "No branches available to delete."
exit 0
fi
# 브랜치 목록 출력
echo "--------------------------------------------"
for i in "${!branch_array[@]}"; do
echo "[$i] ${branch_array[i]}"
done
echo "[x] Exit"
echo "--------------------------------------------"
read -p "Enter Numer you want to delete: " branch_index
# 종료 조건 확인
if [[ "$branch_index" == "x" ]]; then
break
fi
# 유효성 검사
if [[ $branch_index =~ ^[0-9]+$ ]] && [ "$branch_index" -ge 0 ] && [ "$branch_index" -lt "${#branch_array[@]}" ]; then
git branch -D "${branch_array[$branch_index]}"
fi
done
• 공백을 제외한 브랜치 목록 들고오기 (master 및 현재 브랜치 제외)
• 삭제할 브랜치가 없으면 바로 종료
• 유효성 검사: 양의 정수 입력. 브랜치 목록 개수 이내인지 확인
쉘 스크립트를 Alias로 등록
vi ~/.gitconfig
[alias] 부근에 Path에 맞춰 등록해둔다.
brDl = "!f() { ./harbang.sh; }; f"
branch를 -D 옵션으로 list 를 보겠다는 의미로
brDl 로 설정하였다.
반응형
'Git' 카테고리의 다른 글
[Git] 특정 파일 버전 되돌리기 (4) | 2024.11.28 |
---|---|
[Git] commit 순서 변경하기 (5) | 2024.11.24 |
[Git 깃] 유용한 Alias 설정 목록 (28) | 2024.11.19 |
[Git 깃] 유용한 config 설정 목록 (3) | 2024.11.18 |
[Git] 깃 버전 관리 (1) | 2024.07.20 |
댓글