Compromisos de diferentes twigs en la request de extracción de GitHub

Estoy trabajando con un tenedor de la aplicación de nuestra compañía en GitHub. Tenemos una twig de desarrollo y estamos creando nuevas sucursales desde el desarrollo para trabajar en similares ( como feature/new-feature ) y crear requestes de extracción para el repository original cuando finalice nuestro trabajo. Por supuesto, hacer una rebase antes de crear PR.

Después de rebase algunos commits ( commitA y commitC ) de diferentes desarrolladores fusionados a mi sucursal. Y ahora en mi PR estos commits también se enumeran como cambios de file. Y tiene conflicto con el desarrollo.

En breve, la list de compromisos de My PR es así:

commitA <---this commmit is different developers and shouldn't be listed here commitB commitC <---this commmit is different developers and shouldn't be listed here ...

¿Cómo puedo eliminar estos commits de mi PR? Estos commits (commitA y commitC) también están en la twig de desarrollo.

Mi sucursal debería tener solo commit B, commitA y commitC pertenece para desarrollar branch, no my branch.

Puede hacer una rebase de Git en modo interactivo, y luego eliminar selectivamente las confirmaciones A y C que no desea. Suponiendo que desea ver las últimas 5 confirmaciones durante la rebase, puede hacer lo siguiente:

 git rebase -i HEAD~5 

Esto abrirá un editor que contiene un file que se ve de la siguiente manera:

 pick dl4mn23 commitA comment pick 47kmeu6 commitB comment pick k39fn39 commitC comment pick lsw42fg commitD comment pick mk837dc commitE comment 

Para eliminar los commit A y C , simplemente puede eliminar las líneas correspondientes, dejándolo con esto:

 pick 47kmeu6 commitB comment pick lsw42fg commitD comment pick mk837dc commitE comment 

Guarde el file y salga del editor, que debería comenzar la rebase. Puede que tenga que resolver conflictos de fusión. Una vez que haya completado la rebase, puede verificar que tiene el historial que desea usando git log .

Como otra nota, ya que reescribió el historial de esta twig, tendrá que forzarlo al control remoto a través de:

 git push origin feature --force