Flujo de trabajo del mantenedor #

Esta página es para mantenedores, aquellos de nosotros que fusionamos nuestros propios cambios o los de otras personas en el repositorio ascendente.

Siendo como eres un mantenedor, estás completamente al tanto de las cosas básicas en el flujo de trabajo de desarrollo .

Las instrucciones en Vinculación de su repositorio al repositorio ascendente agregan un control remoto que tiene acceso de solo lectura al repositorio ascendente. Al ser un mantenedor, tienes acceso de lectura y escritura.

Es bueno que su control remoto ascendente tenga un nombre aterrador, para recordarle que es un control remoto de lectura y escritura:

git remote add upstream-rw [email protected]:matplotlib/matplotlib.git
git fetch upstream-rw

Integrando cambios #

Digamos que tiene algunos cambios que deben ir al baúl ( upstream-rw/main).

Los cambios están en alguna rama en la que te encuentras actualmente. Por ejemplo, está viendo los cambios de alguien como este:

git remote add someone https://github.com/someone/matplotlib.git
git fetch someone
git branch cool-feature --track someone/cool-feature
git checkout cool-feature

Así que ahora está en la rama con los cambios que se incorporarán aguas arriba. El resto de esta sección asume que usted está en esta rama.

Algunas confirmaciones #

Si solo hay unas pocas confirmaciones, considere cambiar la base a upstream:

# Fetch upstream changes
git fetch upstream-rw
# rebase
git rebase upstream-rw/main

Recuerda que, si haces una reorganización y la empujas, tendrás que cerrar cualquier solicitud de extracción de github manualmente, porque github no podrá detectar los cambios que ya se han fusionado.

Una larga serie de confirmaciones #

Si hay una serie más larga de confirmaciones relacionadas, considere una fusión en su lugar:

git fetch upstream-rw
git merge --no-ff upstream-rw/main

Github detectará la fusión y debería cerrar cualquier solicitud de extracción relacionada automáticamente.

Tenga en cuenta lo --no-ffanterior. Esto obliga a git a hacer una confirmación de combinación, en lugar de hacer un avance rápido, de modo que este conjunto de confirmaciones se bifurque del troncal y luego vuelva a unirse al historial principal con una combinación, en lugar de parecer que se hizo directamente sobre el troncal.

Revisa el historial #

Ahora, en cualquier caso, debe verificar que el historial sea sensato y que tenga las confirmaciones correctas:

git log --oneline --graph
git log -p upstream-rw/main..

La primera línea de arriba solo muestra el historial de forma compacta, con una representación de texto del gráfico de historial. La segunda línea muestra el registro de confirmaciones, excluyendo aquellas a las que se puede acceder desde el enlace troncal ( upstream-rw/main), e incluyendo aquellas a las que se puede acceder desde el HEAD actual (implícito con el .. al final). Por lo tanto, muestra las confirmaciones únicas de esta rama en comparación con el tronco. La -popción muestra la diferencia para estas confirmaciones en forma de parche.

Empujar a troncal #

git push upstream-rw my-new-feature:main

Esto empuja la my-new-featurerama en este repositorio a la main rama en el upstream-rwrepositorio.