33 votes

GitHub - empêcher les collaborateurs d'utiliser push -f

Existe-t-il un moyen d'empêcher une poussée forcée dans une branche ou un référentiel?

Je veux empêcher des branches importantes de réécrire leur histoire, accidentellement ou intentionnellement. Comment les gens gèrent-ils cela dans les grandes équipes de développement?

Dans l'idéal, à mon avis, il serait possible de verrouiller quelques branches par référentiel et d'empêcher tout le monde, à l'exception du propriétaire du référentiel, de les forcer.

32voto

Jörg W Mittag Points 153275

C'est facile à faire avec Git avec un pre-receive crochet. Bien sûr, cela nécessite que vous êtes réellement en mesure d'installer des crochets, et pour des raisons évidentes, GitHub ne vous permet pas de télécharger des fichiers exécutables arbitraires pour fonctionner sur leurs serveurs :-)

En général, le flux de travail avec Git ou vraiment tout le contrôle de version distribué système, c'est que vous ne laissez pas d'autres personnes pour le pousser à votre référentiel. Au lieu de cela, tirez-vous de leur. Cela nécessite un niveau beaucoup plus faible de la confiance. Donc, ce serait la solution numéro 1: ne pas les laisser pousser, demandez-leur de fourche, puis tirer d'eux. De cette façon, vous pouvez contrôler ce qui se passe dans votre référentiel.

Une autre solution serait de créer votre propre mise en scène espace de stockage sur un serveur vous est propre, où vous pouvez installer votre propre Git crochets. Vous pouvez configurer un pre-receive crochet qui refuse de pousser si ce n'est pas un fast-forward et post-receive crochet qui transfère automatiquement toutes les pousse à GitHub. Bien sûr, cela signifie que vous perdez de nombreux avantages de l'utilisation de GitHub en premier lieu.

Une troisième solution de contournement, vous pouvez utiliser plusieurs référentiels. C'est une combinaison de deux autres approches: avoir un espace de stockage pour vos collaborateurs pouvez pousser et un autre que vous avez accès à la, que vous tirez à partir du premier dépôt.

En tout cas, vous devez déposer une demande de fonctionnalité avec GitHub (surtout si vous êtes un client payant!) depuis ce qui semble être une caractéristique utile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X