通常开发会新建个分支在本地开发,开发完成后,提交到remote并合并到master/main。
然后,本地开发的分支就出现了冗余。
批量清除命令:
主分支main
:git branch --merged origin/main | grep -vE '^(main|origin/main)$' | xargs git branch -d
主分支master
:git branch --merged origin/master| grep -vE '^(master|origin/master)$' | xargs git branch -d
命令解析:
git branch --merged origin/main
:列出所有已经合并到 origin/main
的本地分支。这里假设你的主分支是 main
,并且远程跟踪分支是 origin/main
。如果你的主分支是 master
,那么你需要将 origin/main
替换为 origin/master
。
grep -vE '^(main|origin/main)$'
:过滤掉 main
和 origin/main
分支,因为我们通常不想删除这些分支。
xargs git branch -d
:对过滤后的分支列表执行 git branch -d
命令来删除这些分支。-d
选项会在分支未合并时阻止删除操作,如果你想强制删除即使未合并的分支,可以使用 -D
选项代替 -d
。
经常出现在windows中,因为windows文件路径的最大长度限制通常是 260 个字符。
解决:git config --system core.longpaths true
告诉 Git 允许长路径