Fluxo de trabalho do mantenedor #

Esta página é para mantenedores — aqueles de nós que mesclam nossas próprias alterações ou as de outras pessoas no repositório upstream.

Sendo como você é um mantenedor, você está completamente no topo das coisas básicas no fluxo de trabalho de desenvolvimento .

As instruções em Vinculando seu repositório ao repositório upstream adicionam um controle remoto que possui acesso somente leitura ao repositório upstream. Sendo um mantenedor, você tem acesso de leitura e gravação.

É bom que seu controle remoto upstream tenha um nome assustador, para lembrá-lo de que é um controle remoto de leitura e gravação:

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

Integrando mudanças #

Digamos que você tenha algumas alterações que precisam entrar no tronco ( upstream-rw/main).

As alterações estão em algum ramo em que você está atualmente. Por exemplo, você está vendo as mudanças de alguém assim:

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

Agora você está na ramificação com as alterações a serem incorporadas no upstream. O restante desta seção assume que você está neste ramo.

Alguns commits #

Se houver apenas alguns commits, considere rebasear para upstream:

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

Lembre-se de que, se você fizer um rebase e enviá-lo, terá que fechar qualquer solicitação pull do github manualmente, porque o github não será capaz de detectar que as alterações já foram mescladas.

Uma longa série de commits #

Se houver uma série mais longa de commits relacionados, considere uma mesclagem:

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

A mesclagem será detectada pelo github e deve fechar todas as solicitações pull relacionadas automaticamente.

Observe o --no-ffacima. Isso força o git a fazer um merge commit, em vez de fazer um fast-forward, para que esse conjunto de commits se ramifique do tronco e, em seguida, retorne ao histórico principal com uma mesclagem, em vez de parecer que foi feito diretamente no tronco.

Confira o histórico #

Agora, em ambos os casos, você deve verificar se o histórico é sensato e se você tem os commits corretos:

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

A primeira linha acima apenas mostra o histórico de forma compacta, com uma representação em texto do gráfico do histórico. A segunda linha mostra o log de commits excluindo aqueles que podem ser acessados ​​pelo trunk ( upstream-rw/main), e incluindo aqueles que podem ser acessados ​​pelo HEAD atual (implícito com o .. no final). Então, ele mostra os commits únicos para este branch comparados ao trunk. A -popção mostra a diferença para esses commits em forma de patch.

Empurre para o tronco #

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

Isso envia a my-new-featureramificação neste repositório para a main ramificação no upstream-rwrepositório.