2017-09-14 297 views
1

我公司的一个人是该公司的VSTS项目的管理员,为我创建了一个回购协议,并授予我在master分支上的所有权限。如何授予Git'ForcePush'将bfg-repo-cleaner结果推送到VSTS的权限?

现在我需要在我的回购库上运行BFG Repro-Cleaner。它的工作很大本地,但是当我试图git push我的镜像副本,我得到:

! [remote rejected] user/<someone_else>/<branch> -> user/<someone_else>/<branch> (TF401027: You need the Git 'ForcePush' permission to perform this action. Details: identity <my identity>, scope 'branch'.) 
! [remote rejected] refs/pull/<number>/merge -> refs/pull/<number>/merge (TF401027: You need the Git 'ForcePush' permission to perform this action. Details: identity <my identity>, scope 'branch'.) 
error: failed to push some refs to 'https://<repo>' 

什么权限应该问我的管理员授予我,让我可以完成这个?她如何从VSTS网页界面做到这一点?

回答

5

要设置分支的强制推送权限,它位于分支机构安全。如果您是团队项目的管理员,则也可以自行设置。如下设置的详细步骤:

在VSTS团队项目 - >代码选项卡 - >选择您正在为回购协议 - >分支选项卡 - >选择您要设置力推许可分支 - >按钮 - >分支安全 - >设置您所在的组或添加您的帐户为用户 - >设置强制推送到允许 - >保存更改。

enter image description here

enter image description here

+0

正如我在原来的帖子中写道,管理员这样做对我的'主'分支。但是,错误表明我在'user//'中缺少权限,这可能是管理员可以授予我的权限,也是'refs/pull//merge',我不知道。 – Jonathan

+0

@Jonathan你需要在所有受影响的分支上有相同的权限。当这些提交的历史被重写时,它为提交生成一个分支新的哈希标识符。因此,对于那些在此期间承诺回购的人来说,推力也会造成破坏,因为他们的提交将有不同的父提交。 –

+0

@Jonathan另外请确保您的本地回购工作树是干净的(通过'git status'验证)。然后确保目标分支具有强制推送权限。 –

0

这是行不通的,如果你使用git的复位 - 硬提交-ID