Puede usar el gancho pre-push
(desde git 1.8.2).
Su gancho pre-push podría verificar el código de salida git status
, devolviendo 0 (Aceptar para presionar) si git status
devuelve un valor distinto de cero, de lo contrario devolverá 1 (no permita la inserción).
La página del manual para git-status
dice:
Si no hay un camino que es diferente entre el archivo de índice y HEAD y comprometerse (es decir, no hay nada para cometer ejecutando git commit), las salidas de comando con un estado distinto de cero.
Cualquier cesión temporal creada con Git 1.8.2 o posterior tendrá pre-push.sample
en el directorio .git/hooks
, que es un punto de partida útil para la implementación de su política. Hay más ejemplos buenos de usar el gancho pre-push
aquí: http://blog.ittybittyapps.com/blog/2013/09/03/git-pre-push/
Tenga en cuenta que el gancho no se ejecuta en el repositorio ascendente. Cada clon necesitaría tener este gancho instalado para hacer cumplir su política. (Los ganchos no se clonan como parte del repositorio. Como git ejecuta los ganchos, este diseño evita que se ejecuten ganchos maliciosos en el equipo del desarrollador. El código malicioso debe ir a un script Makefile o configure, que los desarrolladores ejecutan sin mirar)
Dile a tus desarrolladores que tengas más cuidado? Las herramientas no siempre son la solución. –
Dale un poco de color al repositorio git y enséñales a tus desarrolladores sobre "git add". "git status" y "git add -A" –