Primero, quiero señalar que en git, cada una pull
es literalmente una operación de ramificación, y cada push
una es una fusión. losmaster
máquina de un desarrollador es una rama completamente separada de la master
de un repositorio central que comparte, con la misma posición desde una perspectiva técnica. Ocasionalmente cambiaré el nombre de mi versión local upstream
o algo así si se adapta mejor a mis propósitos.
Lo señalo porque muchas organizaciones piensan que están utilizando sucursales de manera más efectiva que su colega, cuando realmente están haciendo poco más que crear un nombre adicional para una sucursal en el camino, que de todos modos no se guardará en el historial. Si su colega está confirmando características en una confirmación atómica, es tan fácil retroceder como una confirmación de fusión de una rama de características. La gran mayoría de las ramas de características deberían ser de corta duración y, de todos modos, fusionarse con frecuencia.
Dicho esto, los principales inconvenientes de su estilo de trabajo son dobles. Primero, hace que sea muy difícil colaborar en una característica inacabada. Sin embargo, no sería difícil crear una sucursal solo en aquellos momentos en que se necesita colaboración.
En segundo lugar, hace que la revisión antes de la fusión sea muy difícil. En este punto, en realidad no necesitas convencerlo. Puede adoptar una herramienta como github, gerrit o gitlab, y requerir revisiones de código de solicitud de extracción y pruebas automáticas aprobadas para todas las fusiones. Si no está haciendo algo como esto, francamente no está utilizando git en todo su potencial, y no es de extrañar que su colega no vea ese potencial.