Pourquoi ne puis-je pas supprimer une branche à une distance de GitLab référentiel?
J'essaie de supprimer une branche à la fois localement et à distance GitLab référentiel. Son nom est origin/feat
. J'ai essayé git push --delete origin feat
. Git se plaint:
remote: error: By default, deleting the current branch is denied, because the next
remote: 'git clone' won't result in any file checked out, causing confusion.
remote:
remote: You can set 'receive.denyDeleteCurrent' configuration variable to
remote: 'warn' or 'ignore' in the remote repository to allow deleting the
remote: current branch, with or without a warning message.
remote:
remote: To squelch this message, you can set it to 'refuse'.
remote: error: refusing to delete the current branch: refs/heads/feat
OK de sens, j'ai donc essayé de commutation à origin/master
avec git checkout master
et il me dit: Already on 'master'
. La direction a également besoin d'être mis dans le répertoire distant? Comment dois-je procéder?
OriginalL'auteur smcs | 2017-06-20
Vous devez vous connecter pour publier un commentaire.
Modifier (par des commentaires par l'OP—je n'ai pas utilisé GitLab): GitLab dispose d'une interface web avec des listes déroulantes. Vous avez besoin de l'un sous l'affichage des Paramètres (pas la vue du Projet). Choisir une branche dans la vue Paramètres sous "branche par Défaut" et cliquez sur "Enregistrer les modifications" pour définir la branche courante sur le serveur.
Détails
Vous avez la bonne idée, mais vous devez vous rappeler qu'il y a deux dépôts—deux Gits.
Chaque fois que vous obtenez le texte avec le préfixe
remote:
, cela signifie que le texte est à venir à partir de la autres Git. Quand vous avez vos Git demander à l'autre de Git pour supprimerfeat
, c'est une autre Git se plaindre quefeat
est la branche courante.Donc:
Oui (ainsi, "au lieu de" plutôt que de "aussi").
En général, de la même manière que vous le faites avec n'importe quel référentiel: connectez-vous,
cd
sur le répertoire de dépôt, et d'exécutergit checkout
. Mais il y a un empêchement ou deux avec push-mesure dépôts sur les serveurs:C'est probablement une
--bare
référentiel, de sorte que vous ne pouvez pas utilisergit checkout
directement. L'astuce ici est d'utilisergit symbolic-ref
de mettre à jourHEAD
:Bien sûr, cela suppose que vous pouvez vous connecter (voir le premier point). Si il y a, disons, une interface web qui vous permet de changer de direction sur la télécommande, il va avoir à faire ce
git symbolic-ref
opération pour vous.Impair. Je me demande si il y a des journaux de serveur, vous pouvez examiner pour savoir ce qui se passe (ou ne se produit pas lorsque vous utilisez l'interface web.
J'ai réussi à supprimer la branche à distance maintenant. Dans GitLab il y a en fait deux listes déroulantes pour changer la direction générale, l'un dans la vue Projet, l'un dans l'affichage des Paramètres de chaque projet. Le choix d'une branche dans la vue Paramètres sous "branche par Défaut" et en cliquant sur "Enregistrer les modifications" fait git changer de direction côté serveur. La liste déroulante dans la vue projet, simplement décider ce que les fichiers que vous êtes en train de regarder dans l'interface.
OriginalL'auteur torek
Essayer
OriginalL'auteur Charles
Pour supprimer une branche locale de votre machine:
Pour supprimer une branche distante:
Dans votre cas, les déclarations ci-dessus serait:
Pour supprimer une branche locale de votre machine:
Pour supprimer une branche distante:
OriginalL'auteur kk.
J'ai eu le même problème quand j'ai voulu supprimer le maître de l'origine.
En supposant que vous souhaitez supprimer le maître, j'ai résolu le problème en 3 étapes:
Aller à la GitLab page de votre référentiel, puis cliquez sur le
“Paramètres” bouton.
Dans Branche par Défaut, commutateur de la branche par défaut de votre maître à
autre.
Dans Protégé Branches, si il n'y a aucune protection, ôter la protection du maître.
Puis vous essayez à nouveau de supprimer la branche.
Si ce n'est pas le maître que vous souhaitez supprimer, il suffit de suivre les mêmes étapes avec la branche désirée.
OriginalL'auteur Gabriel Vianna
si vous essayez todelete plusieurs branches, toute branche protégé (par exemple, la branche par défaut, généralement
master
) va entraîner l'ensemble de la demande à l'échec, donc peut-être essayer de les supprimer un à un, ou à l'exclusion connu protégé branches.Par exemple, j'ai essayé de supprimer fusionné branches avec
OriginalL'auteur ThorSummoner
Pour supprimer la branche
git branch-D registryDB(une branche Git nom)
git push origin :registryDB
OriginalL'auteur James Siva