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