Erlaube das Löschen der Master-Verzweigung in git

8

Ich versuche, einen Git-Hook einzurichten, der es niemandem erlaubt, die Master-, Alpha- und Beta-Zweige unseres Repositorys zu löschen. Kann mir jemand helfen? Ich habe noch nie einen Githaken gemacht, also möchte ich nicht mein Glück versuchen, mein eigenes ohne eine kleine Hilfe zu entwickeln.

Vielen Dank im Voraus.

    
Tom Schlick 07.01.2010, 17:58
quelle

2 Antworten

7

Einfach mit einem pre-receive Hook. Angenommen, Sie verwenden ein reines zentrales Repository, geben Sie den folgenden Code in your-repo.git/hooks/pre-receive ein und vergessen Sie nicht chmod +x your-repo.git/hooks/pre-receive .

%Vor%     
Greg Bacon 07.01.2010, 18:25
quelle
7

Wenn Sie alle Zweiglöschungen mit 'push' ablehnen möchten, können Sie einfach die Konfigurationsvariable receive.denyDeletes auf true in Ihrem Repository setzen.

Wenn Sie eine komplexere Steuerung benötigen, empfehle ich Ihnen, den update-paranoid -Hook aus dem Ordner contrib/hooks der Git-Distribution zu betrachten. Es erlaubt Ihnen, pro ref acms, die Dinge tun können, wie Nicht-Fast-Forwards zu verweigern und Löschungen per Push sowie einige anspruchsvollere Verhaltensweisen zu verweigern.

update-paranoid sollte alles tun, was Sie brauchen, ohne dass Sie Ihren eigenen Hook schreiben müssen.

    
Charles Bailey 07.01.2010 18:20
quelle

Tags und Links