我有一个使用git的2015年VSTFS设置。不知怎的,我们有两个分支,开发,这是我想保持孤立的分支,因为那是我们的主人。不知何故,还有一个远程分支开发(小写d)。我想删除这个,因为它令人困惑,但我害怕这样做,以防我们遇到问题。
我的问题是,我正在运行VS 2017并且它不会删除远程分支。我通过右键单击团队资源管理器并单击"删除"来完成此操作。
来自输出窗口的消息说明如下:
从远程存储库中删除分支时遇到错误:Git进程意外失败。 PushCommand.ExecutePushCommand
所以,我打开一个cli,看看那里有什么。这里的命令是
git branch -d -r origin/<branchname>
但是,我在另一个扔掉的分支上尝试了它,我仍然可以在浏览器的TFS列表中看到它。
我的问题是,如何删除小写开发以确保我不删除大写开发?
更新:
似乎我在git实例上缺少ForcePush权限,尽管他是TFS管理员。目前确定这是否是问题的原因。
答案 0 :(得分:4)
更新2:有关如何删除this previous stackoverflow answer中提供的远程分支的强大执行摘要。我认为遗漏的一件事是,为了执行命令$ git push -d <remote_name> <branch_name>
,您需要权限“强制推送”到分支。
更新:这可能是git不区分大小写的问题。请在此处查看博文:https://tosbourn.com/git-branches-seem-to-be-case-insensitive/
原文答案:
我认为git push origin :development
会做到这一点。您可以将此视为“将null推送到开发” - 换句话说,删除分支。
我相信当你执行git branch -d -r origin/<branch name>
时,你只是删除了本地存储的远程跟踪分支。
答案 1 :(得分:0)
检查已删除的分支是否已选择为远程存储库的默认分支。在这种情况下,您必须为远程存储库选择另一个默认分支。