Cómo fusionar git commits en la twig de desarrollo a una twig de características

Tengo una twig de desarrollo y una twig de características en mi git repo. Agregué un compromiso para desarrollar y ahora quiero que el compromiso se fusione con mi twig de características. Si hago esto

git checkout feature git merge develop 

Termino con un compromiso de fusión. Como voy a fusionar nuevas confirmaciones en el desarrollo de mi twig de funciones con frecuencia, me gustaría evitar todas estas confusiones de fusión innecesarias. Vi esta respuesta que sugería hacer un git rebase develop pero termina rebobinando demasiado mi twig y falla la rebase.

Actualización: Lo que terminé haciendo fue

 git checkout feature git merge develop # this creates a merge commit that I don't want git rebase # this gets rid of the merge commit but keeps the commits from develop that I do want git push 

Actualización: Me acabo de dar count de que el commit original en develop obtiene un hash diferente cuando me fusiono y luego rebase a la twig de características. No creo que eso sea lo que quiero porque eventualmente fusionaré la function de nuevo en el desarrollo y supongo que esto no funcionará bien.

Para integrar una twig en otra, debe fusionar o volver a establecer la base. Dado que solo es seguro volver a realizar las comprobaciones que no se mencionan en ningún otro lugar (no se fusionaron con otras sucursales locales, no se enviaron a ningún control remoto), generalmente es mejor fusionarse.

Si su twig de características es puramente local, puede volver a establecer una base sobre el desarrollo. Sin embargo, lleva time comprender cómo funciona la rebase, y antes de hacerlo, es bastante fácil producir accidentalmente commits duplicates o descartados. Las confusiones de combinación pueden parecer ruidosas, pero la fusión garantiza que siempre será segura y pnetworkingecible.

Para una mejor visión, intente registrar todo junto en un gráfico:

 git log --all --graph --oneline --decorate 

También vale la pena considerar si realmente necesitas los commits en el develop combinado en la feature . A menudo son cosas que pueden dejarse separadas hasta que la feature se fusione para develop más tarde.

Si descubre regularmente que necesita develop código en la feature entonces podría ser una señal de que sus twigs de características son demasiado largas. Lo ideal es que las funciones se dividan de tal manera que se puedan trabajar de forma independiente, sin necesidad de una integración regular en el path.

Si solo desea una confirmación desde la twig de develop , puede seleccionarla en su twig de feature :

  git checkout feature git cherry-pick -x <commit-SHA1> 

La confirmación se aplicará como una nueva en la parte superior de la sucursal (siempre que no genere un conflicto), y cuando fusionarás la twig de feature , Git se encargará de resolverla sin conflictos.