A. shell script를 사용한다.
아래 파일을 내려 받는다.
fork한 저장소 디렉터리에 복사한다.
$ sh ./remove_branches_except_mine.sh
를 실행하면 브랜치가 모두 삭제된다.
위험하니 꼭 테스트 저장소를 만든 뒤에 해보기를 권한다.
#!/bin/bash
# 남겨둘 브랜치명 예)dev
MY_BRANCH="/dev"
SUB="remotes/origin/"
branches=`git branch -a`
for b in $branches
do
if [[ "$b" == *"$SUB"* ]] && [[ "$b" != *"$MY_BRANCH" ]] && [[ "$b" != *"main"* ]]
then
echo $b
git push origin --delete ${b/${SUB}/""}
fi
done
이때 계정과 비밀번호를 입력하라고 하는데, 비밀번호는 access token을 입력해야 한다.
참고: Creating a personal access token
아래처럼 선택해서 만들면 된다.
sh 명령어 실행
sh ./remove_branches_except_mine.sh 명령어를 실행하면 아래처럼 뜬다.
token 입력
만든 token을 복사해서 password 대신 입력하면 된다.
브랜치 삭제 시작
test, test2 브랜치가 삭제되었다.
그럼 브랜치가 모두 삭제되고 main, dev만 남아 있는 것을 볼 수 있다.