2 votes

Comment puis-je vérifier si je suis autorisé à forcer la poussée ?

Si je veux éditer un commit passé qui a déjà été poussé vers un remote, comment puis-je tester si je suis autorisé à forcer le push sans changer quoi que ce soit ?

Pour modifier un commit antérieur, j'utilise généralement git rebase -i HEAD~N et modifiez ensuite pick a edit où je souhaite apporter des modifications. Si je fais cela et que je me rends compte par la suite que je ne suis pas autorisé à forcer la poussée, je dois réinitialiser mon espace de travail (ce que je veux éviter, car les modifications que j'ai apportées à la livraison seront perdues).

Je sais que ce n'est pas une bonne pratique de faire cela avec des commits déjà poussés.

Existe-t-il un moyen de tester cela avant de procéder à un rebasement ?

3voto

torek Points 25463

Le seul test totalement fiable pour savoir si vous avez la permission de faire X (pour un certain nombre de X (qui n'est souvent même pas lié à Git) est d'essayer de faire X et voir s'il réussit. Le problème fondamental de la méthode "tester si X est autorisé, alors faites X "est que la réponse peut changer entre le test et la tentative. (Certains systèmes faire supportent ask-permission-first de manière fiable, mais la plupart ne le font pas : la plupart vous donnent une réponse qui expire au moment où vous l'obtenez).

Cela dit, les permissions de force-push de Git sont déterminées par la directive autres Git, et il n'y a pas d'autre moyen de le demander que d'essayer de toute façon ! Le meilleur moyen de demander à l'autre Git est de demander à l'autre système à propos de son Git, d'une manière spécifique à un autre système. La meilleure solution est de créer une branche temporaire, d'y faire un "force-push", puis de la supprimer. Si l'étape de forçage réussit, alors vous savez que vous avez au moins eu la permission de forcer l'accès à cette branche pour ce moment précis.

Les sites d'hébergement courants tels que GitHub permettent aux administrateurs de "verrouiller" ou de "protéger" une ou plusieurs branches particulières. Les détails de ce fonctionnement, et qui a quelle permission, dépendent de ces sites d'hébergement. Voici la page GitHub sur les options de restriction de branche.

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