我们在Team Foundation Service中使用git,我们正在尝试通过运行以下命令来找到删除远程分支的方法。
git push origin --delete TheBranchName
远程服务器一直拒绝并出现以下错误
! [remote rejected] TheBranchName (TF401026: The ForcePush permission is required to perform this action.) error: failed to push some refs to 'https://xxx.visualstudio.com/DefaultCollection/_git/Xxxxxx'
知道如何在TFS中为用户设置正确的权限吗?
答案 0 :(得分:22)
可以访问存储库的安全选项
1。代码 - >资源管理器
2。从资源管理器中选择一个仓库
3。在存储库的详细信息中,您应该单击资源管理器旁边的存储库名称。
4。选择管理存储库...菜单
您可以在此处配置存储库及其分支的每个参与者组和各个用户的权限。 “重写和破坏历史(强制推送)”选项应该允许或继承允许强制推送。
答案 1 :(得分:5)
要删除远程分支,您可以使用:
git push origin :TheBranchName
答案 2 :(得分:3)
在第一个回答中,此link的第一条评论已回答您的问题:
“有人在远程仓库中启用了一个禁止删除的钩子 - 这通常是为了让某人无法将一个重新分支的分支推入回购。(我维护了一个相当大的git集合存储库和它们都是以这种方式配置的,尽管没有钩子。)
查看远程存储库中的hooks /目录。会有一个名为“update”的脚本;这是拒绝让你删除分支的原因。“
答案 3 :(得分:2)
来自git push
手册页:
-f
--force
Usually, the command refuses to update a remote ref that is not an ancestor of the
local ref used to overwrite it. This flag disables the check. This can cause the
remote repository to lose commits; use it with care.
看起来您要删除的分支不是您所在分支的祖先 - 添加此--force
参数,看看它是否有帮助。
答案 4 :(得分:2)
我想修改Ursegor answer,但我没有这样做的声誉。
在版本14.102.25423.0(Team Foundation Server 2015 Update 3)中,可以在以下位置访问存储库的安全/权限选项:
Code/Explorer
...
。Security
答案 5 :(得分:1)
我找到了一个在VSO中删除分支的方法。对于任何落在这里的人来说,我的过程有点麻烦,但有效。从分支创建拉取请求。创建拉取请求后,放弃它。放弃请求后,系统会显示删除源分支按钮。单击该按钮删除分支。
答案 6 :(得分:0)
我只需打开Git UI工具,打开repo并从那里删除分支,它工作正常。我不能从TFS那里做到。