web-dev-qa-db-fra.com

Git supprimer une branche distante dans le référentiel TFS git

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?

29
Eatdoku

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.

22
Ursegor

Pour supprimer une branche distante, vous pouvez utiliser:

git Push Origin :TheBranchName
5
MrDustpan

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. "

3
Winner Crespo

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.

2
David Culp

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:

  1. Code/Explorer
  2. Sélectionnez un référentiel dans l'explorateur 
  3. Cliquez sur les trois points ... en regard du nom du référentiel.
  4. Sélectionnez Security
2
inwenis

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.

1
Prof Von Lemongargle

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.

0
Flea