2017-09-14 4 views
1

Une personne de mon entreprise qui est administratrice du projet VSTS de l'entreprise a créé un rapport pour moi et m'a accordé toutes les autorisations sur la succursale master.Comment puis-je accorder des autorisations Git 'ForcePush' pour transférer les résultats de bfg-repo-cleaner vers VSTS?

Maintenant, je dois exécuter BFG Repro-Cleaner sur mon repo. Il fonctionnait très bien au niveau local, mais quand j'ai essayé de git push mon clone miroir, je me suis:

! [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>' 

Quelles sont les autorisations dois-je demander à mon administrateur de me donner pour que je puisse compléter ce? Comment ferait-elle cela à partir de l'interface web de VSTS?

Répondre

5

Pour définir l'autorisation de transmission forcée pour une branche, elle se trouve dans Branch Security. Si vous êtes administrateur du projet d'équipe, vous pouvez également le définir vous-même. Étapes détaillées du paramétrage comme ci-dessous:

Dans le projet d'équipe VSTS -> Onglet Code -> sélectionné le repo pour lequel vous travaillez -> Onglet Branches -> sélectionnez la branche que vous voulez définir l'autorisation push force -> bouton - > Sécurité de la branche -> Définissez le groupe dans lequel vous vous trouvez ou ajoutez votre compte en tant qu'utilisateur -> réglez Force push sur Autoriser -> enregistrer les modifications.

enter image description here

enter image description here

+0

Comme je l'ai écrit dans le message original, l'administrateur a fait cela pour moi le maître ' 'branche. Cependant, l'erreur suggère que je manque des autorisations sur 'user//', que l'administrateur peut probablement m'accorder aussi, et sur 'refs/pull//merge', pour lequel je n'ai aucune idée. – Jonathan

+0

@Jonathan Vous avez besoin de la même permission sur toutes les branches affectées. Lorsque l'historique de ces validations est réécrit, il génère un nouvel identifiant de hachage de branche pour les validations. En conséquence, la poussée de la force va également être perturbatrice pour toute personne qui a été engagée dans le dépôt entre-temps, puisque leurs commits auront différents parents commits. –

+0

@Jonathan Aussi s'il vous plaît assurez-vous que votre arbre de travail repo locale est propre (vérifié par 'git status'). Et assurez-vous que la branche cible avec l'autorisation de pousser la force pour vous. –

0

cela ne fonctionne pas si vous utilisez git reset --hard commit-id