nous utilisons git dans Team Foundation Service et nous essayons de trouver un moyen de supprimer une branche distante en exécutant la commande suivante.
git Push Origin --delete TheBranchName
Le serveur distant continue à rejeter avec l'erreur suivante
! [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'
aucune idée de comment définir l'autorisation correcte pour un utilisateur dans TFS?
Les options de sécurité sont accessibles pour les référentiels à l’adresse
1. Code-> Explorateur
2. Sélectionnez un dépôt dans l'explorateur
3. Dans les détails du référentiel, vous devez cliquer sur le nom du référentiel à côté de l'Explorateur .
4. Sélectionnez le menu Gérer les référentiels ...
Ici, vous pouvez configurer les droits de chaque groupe de contributeurs et de chaque utilisateur pour les référentiels et leurs branches. L'option "Réécrire et détruire l'historique (forcer le push)" doit être Autoriser ou Autoriser hériter pour pouvoir forcer le Push.
Pour supprimer une branche distante, vous pouvez utiliser:
git Push Origin :TheBranchName
Dans la première réponse et le premier commentaire de ce link répond à votre question:
"Quelqu'un a activé un point d'ancrage dans le repo distant qui interdit la suppression - ceci est généralement fait pour que personne ne puisse pas pousser une branche rebasée dans le repo. tous configurés de cette façon, mais pas avec un crochet.)
Regardez dans le répertoire hooks/du référentiel distant. Il y aura un script nommé "update"; c'est ce qui refuse de vous laisser supprimer la branche. "
Depuis la page de manuel 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.
On dirait que la branche que vous essayez de supprimer n'est pas un ancêtre de la branche sur laquelle vous vous trouvez - ajoutez cet argument --force
et voyez si cela vous aide.
Je voudrais éditer Ursegor répondre mais il me manque la réputation pour le faire.
Dans la version 14.102.25423.0 (Team Foundation Server 2015 Update 3), les options de sécurité/autorisations sont accessibles pour les référentiels à l'adresse suivante:
Code/Explorer
...
en regard du nom du référentiel.Security
J'ai atterri sur cette question en cherchant un moyen de supprimer une branche dans VSO. Pour quiconque atterrit ici, j'ai un processus un peu lourd, mais qui fonctionne. Créez une demande d'extraction à partir de la branche. Une fois la demande d'extraction créée, abandonnez-la. Une fois la demande abandonnée, un bouton de suppression de branche source s’affiche. Cliquez dessus pour supprimer la branche.
Je devais simplement ouvrir l'outil d'interface utilisateur Git, ouvrir le référentiel et supprimer la branche à partir de là et tout fonctionnait bien. Je ne pouvais pas le faire à partir de TFS.