git múltiples requestes de extracción

Soy un novato git en un entorno compartido, pero lo he usado para proyectos personales.

Intento contribuir a un proyecto, así que hice esto:

  • Bifurcó el proyecto.
  • Hecho cambios de código.
  • El código comprometido cambia a mi sucursal local.
  • Cambios empujados a mi tenedor
  • Hice una request de extracción.

Eso funcionó muy bien. PR todavía está pendiente, pero tenía algunas otras ideas. Entonces, creé una nueva sucursal local.

  • Cambios de código hechos
  • El código comprometido cambia a la twig local
  • Cambios empujados a mi copy bifurcada
  • Hice un RP

Los cambios de código de mis ediciones anteriores obviamente están en su lugar con este PR. No quiero eso, ya que no han sido comprometidos con la twig principal. Del mismo modo, quiero hacer cambios adicionales e impulsarlos específicamente sin contener el código de mi trabajo anterior.

¿Cómo se logra esto?

Si quieres combinar twigs, usarás twigs de merge .

checkout tu twig principal.

 git checkout MAIN_BRANCH 

tirar twig adicional a MAIN_BRANCH

 git pull origin ADDIONAL_BRANCH 

o

 git pull origin ADDIONAL_BRANCH 

///////

Crear una nueva sucursal

 git checkout -b new_branch //create new branch git pull origin another_branch //pull changes 

si te unes sin conflicto

 git commit -a -m "you comment" git push origin new_branch 

Como ya ha iniciado una segunda request de extracción, deberá renunciar a las mejores prácticas:

  1. rebase su <PR-2-branch> local al inicio de PR-1 (digamos 8 commits). use -i para iniciar una session interactiva.

     git rebase -i HEAD~8 
  2. En la window del editor que se abre, pulse i y marque commits desde PR-1 (5 commits) para ser drop o d y pick o p commits desde PR-2 (3 commits)

     d 113456 <message> d 223456 <message> d 333456 <message> d 443456 <message> d 553456 <message> p 663456 <message> p 773456 <message> p 883456 <message> 

    Presione Esc > w > q para salir del editor y continuar con la rebase .
    La twig ahora solo contiene confirmaciones dentro del scope de la PR actual.

  3. Actualice la twig remota con --force

     git push origin <PR-2-branch> --force