我有一个git repo,我把我最新的修改推送到了一个远程服务器上。在过去的几天里,我在本地删除了几个分支,但无法在远程服务器上删除它们,因为我没有任何与git服务器的连接。有没有办法删除我的本地存储库中不再存在的远程分支?我们讨论了200个分支,因此不需要手动方法。我找到了几个答案来删除一个本地分支,它不再存在于远程通过git fetch --prune,在我的情况下,我正在寻找相反的方式。任何帮助都是非常感谢的
git fetch --prune
hivapdat1#
如果您想用一个命令删除多个分支,可以尝试执行以下操作:
git push origin --delete <branch1> <branch2> <branch3>
如果你想要远程分支的列表,你可以先尝试这个命令,然后将列表复制粘贴到上面的命令中。
git branch -r
xriantvc2#
我没有看评论。最好的答案是stackoverflow.com/a/13437928/7976758:
$ git push --prune origin
偶然发现了这个问题,这是我怎么做的,它不是完全自动化,但这应该是一个开始.
1.获取本地分支列表
$ git --no-pager branch --sort=-committerdate > branches_to_delete.txt
1.删除文件branches_to_delete.txt中不需要删除的行1.在本地删除分支
branches_to_delete.txt
$ cat branches_to_delete.txt | xargs git branch -D
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
2条答案
按热度按时间hivapdat1#
如果您想用一个命令删除多个分支,可以尝试执行以下操作:
如果你想要远程分支的列表,你可以先尝试这个命令,然后将列表复制粘贴到上面的命令中。
xriantvc2#
当前答案
我没有看评论。最好的答案是stackoverflow.com/a/13437928/7976758:
上一个答案:
偶然发现了这个问题,这是我怎么做的,它不是完全自动化,但这应该是一个开始.
步骤1:删除本地分支
1.获取本地分支列表
1.删除文件
branches_to_delete.txt
中不需要删除的行1.在本地删除分支
第2步:删除远程分支
1.获取远程分支列表
1.删除文件
branches_to_delete.txt
中不删除的分支1.将文件中的所有“origin/”替换为“”(vim、emacs、vscode、sed等)
1.在远程删除分支: