2013-03-06 240 views
27

我们在Team Foundation Service中使用git,并试图通过运行以下命令来找到删除远程分支的方法。Git删除TFS 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用户拒绝?

+3

您似乎没有足够的权利来执行此操作。这个命令是正确的btw – iberbeu 2013-03-06 22:20:43

回答

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

+0

- 强制不起作用=( – 2014-03-21 09:53:19

5

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

git push origin :TheBranchName 
+0

我试着“git push origin --delete BranchName”并且得到一个错误,我没有所需的权限 - 然后我按照你的建议与“git推送起源:BranchName“,并提示我为我的凭据,然后工作!如何/为什么这样工作? – Omaer 2016-10-19 13:09:45

3

在第一个答案,这link的第一评论回答你的问题:

“有人已经启用了钩在远程回购是禁止删除 - 通常这样做是为了让别人无法将重定向的分支推入回购(我保留了一大堆git存储库,它们都是用这种方式配置的,尽管没有挂钩。 )

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

+0

问题涉及到TFS,它不支持远程挂钩。它,但没有通过挂钩/目录 - 你必须编写一个TFS事件处理程序,例如http://almsports.net/tfs-server-side-check-in-policy-for-git-repositories/1025/ – 2015-07-02 11:52:53

22

的安全选项可以为存储库在
1.代码 - >浏览器
2访问的选择回购形式的资源管理器
3.仓库的详细信息,您应该单击资源管理器旁边的存储库的名称。
4.选择管理存储库...菜单

在这里,您可以配置每个贡献者组为仓库的权利和个人用户和他们的分支。“重写和摧毁历史(推力)”选项猎取允许或继承允许可以强制推送。

+1

哦哇,这是一个隐藏的小宝石。 – 2015-09-29 18:49:11

+0

这应该是被接受的答案 – 2016-08-15 18:03:57

+0

我不得不明确地加入自己并给予我自己的许可,并且它可以工作 – matthewpavkov 2018-02-22 21:01:55

1

我登陆这个问题寻找一种方法来删除VSO中的一个分支。对于任何在这里的人来说,我有一个有点麻烦的过程,但是有效。从分支创建一个拉取请求。一旦拉请求被创建,放弃它。一旦放弃了请求,就会看到一个删除源分支按钮。点击以删除分支。

+0

它会很好,如果它工作的我只是尝试过 - 点击放弃后,只有Reactivate对接并且没有任何“删除”选项。 – JustAMartin 2016-06-07 08:41:55

1

我想编辑Ursegor answer但我缺乏这样做的声誉。

在版本14.102.25423中。0(Team Foundation Server的2015年更新3)安全性/权限选项可以在存储库的访问:

  1. Code/Explorer
  2. 选择资源库形成的资源管理器
  3. 单击三个点...的repositoy名称旁边。
  4. 选择Security
0

我刚打开Git的UI工具,打开回购,并从那里被删除的分支,它工作得很好。我无法从TFS做到。