Cómo hacer un seguimiento del origen / maestro en mi twig dev git

Soy nuevo en git y me gustaría saber cómo abordar un escenario muy básico. Leí tantas publicaciones en stackoverflow sobre git pero todavía no puedo entender la respuesta.

Tenemos una sucursal remota de origen / maestro en la que todo el mundo está trabajando. Tengo una característica A que quiero implementar y que podría demorar en desarrollar. Mientras tanto, las personas pueden estar ingresando el código al origen / maestro.

¿Cómo se vería mi flujo de trabajo y cómo debería hacer para configurar mi twig git, teniendo en count las siguientes necesidades:

  1. Quiero poder realizar cambios de código en mi sucursal y enviarlos a una sucursal remota en nuestro server para no perder los cambios en caso de que mi computadora esté frita.

  2. Quiero mantener mi twig actualizada con la twig principal.

  3. Quiero minimizar las fusiones regulares. Me gusta el concepto de git rebase, así que me gustaría maximizar su uso y, por lo tanto, unirme rápidamente.

  4. En algún momento tendremos que fusionar mi twig FeatureA en Origin / Master.

Resumiendo:

¿Cómo configuro una twig que se extrae del origen / maestro pero presiona hacia el origen / MY-BRANCH?

¿Cómo se vería mi flujo de trabajo?

ACTUALIZAR:

Gracias @ will-pragnell! Cuál es la diferencia entre su solución y lo siguiente.

Esta página en github sugiere:

https://github.com/diaspora/diaspora/wiki/Git-Workflow

Para get las últimas actualizaciones del tronco de desarrollo, realice una configuration única para establecer el repository principal de GitHub como un control remoto al ingresar:

$ git remote add upstream git://github.com/diaspora/diaspora.git $ git fetch upstream $ git checkout master $ git rebase upstream/master $ git checkout 100-retweet-bugfix 

[asegúrese de que todo esté confirmado como sea necesario en la twig]

 $ git rebase master 

Probablemente no quiera una twig que extraiga de maestro y empuje a su propia twig. Lo que quiere es pasar del maestro a su maestro local, manejar el rebase localmente y luego enviarlo a su propia sucursal remota para la function. Este es un flujo de trabajo bastante estándar y le brinda control total y una cantidad mínima de fusión. Personalmente, lo haría así:

Crea una nueva sucursal local

 git checkout -b myFeature 

Presiónalo en una nueva twig remota (consulta esta pregunta sobre stackflow si necesitas más información sobre este paso)

 git push origin myFeature 

Ahora puede trabajar de manera agradable en la twig myFeature, presionando con el command de arriba cuando lo necesite sin estropear la twig principal. Cuando necesite hacer commits que otros hayan hecho en master, puede hacerlo así:

 git checkout master git pull (this will just fast-forward if you don't make any local changes to master) git checkout myFeature git rebase master 

Cuando finalice su function, puede fusionar o volver a establecer la base de su twig para dominar para que todos los demás obtengan su nueva function. Me gusta esto:

 git checkout master git merge myFeature git push origin master 

git checkout -b FeatureA (twig de creación y salida)
git push origin FeatureA ( git push origin FeatureA tu nueva twig creada en origen)

Trabajar en la nueva twig FeatureA. No quieres fusiones frecuentes entonces para rebase

 git rebase origin 

En el futuro siempre que quiera fusionarse en maestro.

 git checkout master git merge FeatureA git push origin master