¿Está empujando sucursales de características a buenas prácticas de origen?

Recientemente cambiamos de SVN a Git y todavía estamos en el process de aprendizaje en lo que respecta a las mejores prácticas, etc. Estoy siguiendo esta guía como una plataforma de lanzamiento para administrar nuestras sucursales y lanzamientos.

El documento sugiere que las twigs de características son generalmente locales para el desarrollador, lo cual es muy similar a lo que he leído en otros lugares. Sin embargo, algunos de los ingenieros están trabajando en funciones que no estarán en la próxima versión. Estas características son de 2 a 3 iteraciones antes de nuestro ciclo de lanzamiento.

La preocupación que escucho de mis ingenieros es que están preocupados por mantener tanto código local. Incluso con sus processs de respaldo en su lugar, sigue siendo una preocupación. Y tiendo a estar de acuerdo con sus preocupaciones.

Entonces mi pregunta es, ¿es estándar que las ramificaciones que no están progtwigdas para lanzamientos más inmediatos sean empujadas al origen? En algún momento, estas twigs se fusionan en la twig de desarrollo y luego se eliminan del origen.

Como ejemplo, un ingeniero está trabajando en una pieza de cumplimiento que es bastante grande. No queremos que su código se introduzca en la twig de desarrollo (siempre nuestro próximo candidato para la versión). Entonces creamos una twig de plenitud para él y la llevamos al origen. El documento al que me he vinculado y otros que he leído no lo hacen, es claro en cuanto a si esto es una buena o mala práctica.

Si hay una mejor práctica aquí, por favor avíseme o confirme mi especulación.

Depende.

Si alguien está trabajando en una function y desea compartirla con otros desarrolladores, tiene mucho sentido. Pero si es una function en la que está trabajando solo, ¿por qué enviarla al server si no necesita compartirla? Eventualmente se fusionará con alguna otra twig, como master o se desarrollará cuando se complete la function.

Comparta las sucursales que deben compartirse, mantenga otras sucursales localmente. No arruine el repository principal si no es necesario. Además, otros desarrolladores tendrán que limpiar manualmente sus repositorys de references cuando las ramificaciones se eliminen del repository principal, a través de git remote prune origin.

Para las características de pequeño tamaño es opcional. Recomendaría presionar las características de tamaño mediano a grande a diario con fines de respaldo. Su empresa detendrá escuchar que su desarrollador perdió 2 semanas de trabajo cuando su PC murió.