Air*_*ram 16 versioning git version-control
我想删除项目存储库的一些远程分支.我运行下一个命令:
git push origin :name_of_branch
Run Code Online (Sandbox Code Playgroud)
当我列出远程分支时
git branch -r
Run Code Online (Sandbox Code Playgroud)
我删除的分支没有出现,但是我的合作伙伴
git fetch
Run Code Online (Sandbox Code Playgroud)
然后
git branch -r
Run Code Online (Sandbox Code Playgroud)
在列表中,name_of_branch
我删除的分支仍在列表中.但是,当他试图删除分支时
git push origin :name_of_branch
Run Code Online (Sandbox Code Playgroud)
他收到了下一条消息:
error: unable to delete 'name_of_branch': remote ref does not exist
error: failed to push some refs to 'the_name_of_the_repository'
Run Code Online (Sandbox Code Playgroud)
我怎么能完全删除列表中的分支?
Jan*_*ger 25
发生这种情况是因为当您的此合作伙伴运行时git fetch
,分支删除不会"应用"到其存储库中.fetch
只更新并添加分支.
他们可以运行git remote prune origin
以修剪其列表中不再存在于上游存储库中的远程分支.
小智 11
git fetch --prune <remote>
可用于删除跟踪远程存储库中不再存在的分支的所有远程跟踪分支(即它们已在远程中删除).从官方Linux Kernel Git文档中fetch
:
-p
--prune
获取后,删除远程不再存在的任何远程跟踪分支.
您还可以使用该命令远程过时远程跟踪分支
git branch -D -r <remote>/<branch>
Run Code Online (Sandbox Code Playgroud)
使用
-r
连同-d
删除远程跟踪分支.请注意,只有在远程存储库中不再存在远程跟踪分支或者git fetch
配置为不再提取远程跟踪分支时,才有意义.