¿Cómo eliminar de forma segura los files del maestro que ya se han eliminado de una sucursal?

Consulte el siguiente diagtwig:

my-branch A---B---C---D / \ master E---F---G 

Durante la fusión de B a G , he agregado inadvertidamente files al master que eliminé de my-branch en D usando git rm . Desafortunadamente, tengo trabajo en C que aún no está listo para fusionarse con el maestro. ¿Puedo git rm forma segura los files en el master y todavía fusionar my-branch (donde los files ya han sido eliminados) en el master más tarde?

En otras palabras, al combinar B con G , agregué files al maestro en la confirmación G que no quiero. Estos files están git rm de my-branch en D , pero no quiero unir D en master porque C contiene cambios que aún no están listos. ¿Cuál es la mejor manera de proceder?

Si la confirmación D solo tiene los files rm'ed, lo movería antes de la confirmación C, y luego lo fusionaría en maestro.

En este caso, sería git rebase -i HEAD~2 luego reorderar los commits para poner D antes de C. Luego puedes unir D en master y terminar con

A---B---D---C / \ E---F---G---H

Si D tiene otros cambios, entonces debe volver a realizar la confirmación para que solo tenga los files rm'ed, y luego reorderarlos.

Si ya ha publicado my-branch , cualquiera que lo haya sacado terminará con una fusión que contiene los cambios existentes de C y D En ese caso, seleccionaría D en Master para eliminar los files antes de fusionar my-branch y luego tratar con un conflicto de fusión trivial cuando se fusionen en master . OMI, sería mejor que lidie con el conflicto una vez más tarde, en lugar de que todos los demás lo solucionen ahora.

Si no está familiarizado o se siente incómodo al usar la rebase interactiva, puede crear una twig en commit G y cherry-pick D. Luego, pr o fusionar su branch en master.