Flujo de trabajo de Git: cómo sincronizar de forma sana las horquillas sin reescribir el historial?

Estoy trabajando en una gran empresa y uso git para rastrear los cambios en el código. Mi flujo de trabajo actual es algo así como:

  1. Bifurque el repository "GitRepoA" y llámelo "GitRepoB".
  2. Introducir cambios

'

git clone <GitRepoB> git remote add upstream <GitRepoA> git checkout -b new-feature vim <text-file> git add <text-file> git commit -m "Commit message" git push -u origin new-feature 
  1. Crea una request de fusión en GitLab.
  2. El compromiso presentado por mí no es perfecto, tengo que mejorarlo. Mientras tanto, otros desarrolladores modifican la base de código y el tenedor tiene que estar sincronizado.

.

 git checkout master git fetch upstream git pull --rebase upstream master 

Ahora mi twig maestra local está actualizada, pero no sé cómo llevar la twig de nuevas características a este estado también. Al realizar la reposition de la database, cambian los ID de las confirmaciones que ya he enviado (todavía no se han fusionado), por lo que se producen varias veces al final.

¿Cómo debo usar git para no contaminar la historia de GitRepoA?