2010-02-04 8 views
11

Ich möchte eine Remote-Zweigstelle aus meinem zentralen Git-Repository löschen. Der übliche Ratschlag lautet "git push origin: Branchname" oder "git push origin: heads/Branchname". Aber wenn ich das versuche, bekomme ich diese Fehlermeldung:Kann Remote-Zweig in Git nicht löschen

*** Deleting a branch is not allowed in this repository
error: hooks/update exited with error code 1
error: hook declined to update refs/heads/branchname
To /opt/repo/myrepo.git
! [remote rejected] branchname (hook declined)
error: failed to push some refs to '/opt/repo/myrepo.git'

Was gibt? Ich benutze Git Version 1.5.4.3, wenn das hilft.

Antwort

19

Jemand hat einen Haken im Remote-Repo aktiviert, der das Löschen verbietet - dies wird normalerweise so gemacht, dass jemand einen rebasierenden Zweig nicht in den Repo schieben kann. (Ich behalte eine ziemlich große Sammlung von Git-Repositories und sie sind alle auf diese Weise konfiguriert, obwohl nicht mit einem Haken.)

Suchen Sie im Hooks/Verzeichnis im Remote-Repository. Es wird ein Skript namens "update" geben; Das ist es, was es ablehnt, die Verzweigung löschen zu lassen.

+7

Danke! Mit dieser Information konnte ich diese Lösung ausarbeiten: 'git --git-dir /opt/repo/myrepo.git config --bool hooks.allowdeletebranch true'. Nachdem ich das getan hatte, konnte ich 'git push origin: Branchname' verwenden, um den entfernten Zweig zu löschen. – twirlip

+1

@twirlip: fantastisch, froh, dass du es reparieren konntest. – ebneter

+1

Ich habe die Antwort abgelehnt, da sie einen Hinweis gibt, aber das Problem nicht ohne zusätzliche Erklärung löst. Stattdessen tut der erste Kommentar die Magie :) – yoshi

2

Möglicherweise müssen Sie sich bei Ihrem Remote-Repository anmelden und die Verzweigung manuell löschen (dh aus dem Dateisystem).

3

Ich denke, das könnte sein, was die Nachricht sagt: Das Remote-Repository erlaubt keine Entfernung von Geschichte. Berücksichtigen Sie verschiedene Git-Hosting (wenn Sie die Einstellungen nicht anpassen können, was Sie gerade verwenden), wenn Sie diese Funktionalität wirklich benötigen.

+1

Das Repository wird lokal gehostet (naja, es befindet sich auf einem Server, auf den ich root zugreifen kann). Wenn es eine Konfigurationsänderung gibt, die im Repo vorgenommen werden kann, um diese Funktionalität zu aktivieren, würde ich es gerne wissen. – twirlip