📅  最后修改于: 2023-12-03 15:22:42.689000             🧑  作者: Mango
当我们在本地创建了多个分支,并且在远程仓库中只有一部分分支被保留,这样我们就需要将本地分支中不在远程的分支给删除掉。这是一个常见的需求,特别是在多人协同开发的时候,我们会创建多个临时分支来尝试进行实验,但不是所有的分支都需要被保留。
下面是一段Shell/Bash脚本,可以自动化删除本地分支中不存在于远程的分支。该脚本可以帮助我们减少手动删除本地分支的时间。
#!/bin/bash
git remote prune origin
for branch in $(git branch --format "%(refname:lstrip=2)")
do
if ! git branch -r | grep -q "${branch}"; then
git branch -D "${branch}"
echo "${branch} 已被删除"
fi
done
上述Shell/Bash脚本会执行以下操作:
git remote prune origin
命令清理本地仓库中不在远程仓库中的分支。git branch --format
命令获取所有的本地分支列表(排除'master'分支)。git branch -r
命令将本地分支转换为远程分支git branch -D
命令删除该本地分支。将该脚本放置在git仓库根目录下,然后尝试执行以下命令:
./remove_local_branches_not_in_remote.sh
执行命令后,该脚本会自动删除所有不存在于远程的本地分支。