31

我们在 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 中为用户设置正确的权限吗?

4

7 回答 7

23

可以在以下位置访问存储库的安全选项
1. Code->Explorer
2. 从资源管理器中选择一个
存储库 3. 在存储库的详细信息中,您应该单击资源管理器旁边的存储库名称。
4. 选择管理存储库...菜单

您可以在此处配置每个贡献者组和个人用户对存储库及其分支的权限。“重写和销毁历史(强制推送)”选项应该是允许或继承允许能够强制推送。

于 2013-12-16T15:18:44.640 回答
8

要删除远程分支,您可以使用:

git push origin :TheBranchName
于 2013-05-30T14:37:06.330 回答
3

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参数并查看它是否有帮助。

于 2013-03-06T22:32:44.503 回答
3

我想编辑Ursegor 的答案,但我缺乏这样做的声誉。

在版本 14.102.25423.0(Team Foundation Server 2015 Update 3)中,可以在以下位置访问存储库的安全/权限选项:

  1. Code/Explorer
  2. 从资源管理器中选择一个存储库
  3. ...单击存储库名称旁边的三个点。
  4. 选择Security
于 2016-09-19T07:39:10.197 回答
2

在此链接的第一个答案和第一条评论中回答了您的问题:

“有人在远程仓库中启用了一个禁止删除的钩子——通常这样做是为了让某人无法将重新定位的分支推送到仓库中。(我维护了相当大的 git 存储库集合,它们都已配置这种方式,虽然不是用钩子。)

查看远程存储库中的 hooks/ 目录。会有一个名为“update”的脚本;这就是拒绝让你删除分支的原因。”

于 2013-11-26T16:54:04.047 回答
1

我遇到了这个问题,寻找一种在 VSO 中删除分支的方法。对于登陆这里的其他人,我有一个有点麻烦但有效的过程。从分支创建拉取请求。创建拉取请求后,放弃它。放弃请求后,您会看到一个删除源分支按钮。单击以删除分支。

于 2016-02-23T15:59:13.467 回答
0

我只需要打开 Git UI 工具,打开 repo 并从那里删除分支,它工作正常。我无法从 TFS 做到这一点。

于 2016-11-17T18:23:03.997 回答