git 删除本地不再存在的所有远程分支

chhkpiq4  于 2022-11-27  发布在  Git
关注(0)|答案(2)|浏览(245)

我有一个git repo,我把我最新的修改推送到了一个远程服务器上。在过去的几天里,我在本地删除了几个分支,但无法在远程服务器上删除它们,因为我没有任何与git服务器的连接。
有没有办法删除我的本地存储库中不再存在的远程分支?我们讨论了200个分支,因此不需要手动方法。
我找到了几个答案来删除一个本地分支,它不再存在于远程通过git fetch --prune,在我的情况下,我正在寻找相反的方式。
任何帮助都是非常感谢的

hivapdat

hivapdat1#

如果您想用一个命令删除多个分支,可以尝试执行以下操作:

git push origin --delete <branch1> <branch2> <branch3>

如果你想要远程分支的列表,你可以先尝试这个命令,然后将列表复制粘贴到上面的命令中。

git branch -r
xriantvc

xriantvc2#

当前答案

我没有看评论。最好的答案是stackoverflow.com/a/13437928/7976758

$ git push --prune origin

上一个答案:

偶然发现了这个问题,这是我怎么做的,它不是完全自动化,但这应该是一个开始.

步骤1:删除本地分支

1.获取本地分支列表

$ git --no-pager branch --sort=-committerdate   > branches_to_delete.txt

1.删除文件branches_to_delete.txt中不需要删除的行
1.在本地删除分支

$ cat branches_to_delete.txt | xargs git branch -D

第2步:删除远程分支

1.获取远程分支列表

$ git remote prune origin # delete all the local refs to already-deleted remote branches
$ git --no-pager branch -r --sort=-committerdate  > branches_to_delete.txt

1.删除文件branches_to_delete.txt中不删除的分支
1.将文件中的所有“origin/”替换为“”(vim、emacs、vscode、sed等)
1.在远程删除分支:

$ cat branches_to_delete.txt | xargs git push origin --delete

相关问题