Git: cambiar a una twig remota de un clon

Tengo una pregunta sobre el flujo de trabajo de git, y no entiendo completamente todos los términos para saber para qué search google.

La versión corta: ¿es posible "cambiar" su directory git local a una twig desde un repository remoto, cuando sus repositorys locales comenzaron como clones del repository remoto? Soy nuevo en git, así que sigo acertando con la terminología aquí; si he dicho algo que parece incorrecto / incorrecto / hacer una suposition, por favor avíseme.

La versión larga.

Tengo un repository local que es un clon del repository "central". Este repository tiene varias twigs, cada una de las cuales tiene muchas revisiones por delante de la twig maestra del repository original.

$ git branch foo * master universal_imports 

Sé que puedo "cambiarme" a una de mis sucursales locales usando el command de checkout de git

 $ git checkout foo $ git checkout universal_imports etc. 

También tengo algunos mandos a distancia

 $ git remote origin upstream 

La twig maestra del upsteam es nuestra fuente de verdad. Es el producto , el repository central antes mencionado. Como se mencionó anteriormente, mi repository principal local comenzó como un clon de este repository. (en realidad, mi repository local es un clon del control remoto de origin , que es un fork github de la twig principal upstream. No estoy seguro si eso es relevante)

Aquí está el escenario que bash resolver. He estado haciendo un nuevo desarrollo en mis twigs. Soy muchas versiones por delante del maestro original. Sin embargo, acabo de recibir una request para arreglar algo en producción. Mi model mental aquí sería

  1. Cambiar mi código local para que coincida con el código de producción
  2. Haz la corrección y comprométala
  3. Fusionar mi código local en la twig de la fuente de la verdad
  4. Cambiar mi código local a mis twigs "reales" y continuar el desarrollo de nuevas características

El objective es evitar poner mi nuevo código en producción antes de que esté listo.

A less que vuelva a clonar el repository central en alguna parte, ¿hay un flujo de trabajo git para esto? Idealmente me gustaría algo como lo que describí "cambiar a una sucursal remota", pero si eso es una charla sin sentido, hay una manera en que podría haber trabajado con git que me hubiera permitido manejar esta situación. (Arranque adelante en el nuevo trabajo, pero principal la capacidad de trabajar en un punto más atrás en la historia)

Puede crear una nueva twig para rastrear una twig remota como esta (aquí la twig local se llama 'corrección de errores'):

 git checkout -b bugfix upstream/master 

Una vez que tiene un seguimiento de sucursal local y se sincroniza con la sucursal remota deseada, puede simplemente hacer los cambios, luego git commit y git push , y luego pagar su sucursal de trabajo original.

Finalmente, después de verificar nuevamente su twig de trabajo, querrá combinar su cambio de corrección de errores en su twig de trabajo de esta manera:

 git merge bugfix 

O refrigérelo de esta manera (la creación de bases de datos crea una historia más limpia pero puede requerir más trabajo para resolver conflifctos):

 git rebase -i bugfix 

Puede continuar y dejar esa twig allí (en cuyo caso, es probable que desee llamarlo algo más permanente que 'corrección de errores', tal vez algo así como 'upstream-master', o 'live-product', o lo que sea). O puede eliminar la twig local si ya no la quiere, así:

 git branch -D bugfix