Git: agrega una contraseña para empujar algunos files

¿Es posible agregar una contraseña para enviar y enviar algunos files / carpetas en un repository de GIT?

¿O de otra forma para evitar que algunos usuarios se comprometan y empujen algunos files / carpetas que se supone que no deben comprometer y enviar?

Posiblemente puedas usar git hooks para hacer lo que quieras. (Consulte la documentation de git en https://git-scm.com/book/en/v2/Customizing-Git-An-Example-Git-Enforced-Policy bajo el encabezado Enforcing a User-Based ACL System .)

El ejemplo completo que usan puede ser excesivo para sus necesidades; la idea key es que un gancho post-recepción puede rechazar un empuje, por lo que puede examinar los files modificados en cada confirmación (con git rev-list y git log ) y rechazar confirmaciones que afecten ciertos files si eso es lo que desea hacer.

Por supuesto, esto solo protege el repository de origen; las personas pueden hacer lo que quieren a nivel local. Pero proteger el origen es realmente lo único que importa, y de todos modos es prácticamente imposible evitar que las personas hagan lo que quieren con sus clones locales.