O que fazer a seguir é: continuar contribuindo com novos recursos ou consertando outros bugs em seus próprios branches dedicados (enviados apenas para seu fork).
O que significa que o garfo fica, mas os galhos dentro do garfo podem ir e vir.
Você também pode remover a bifurcação se não estiver planejando contribuir mais, mas isso removerá a entrada correspondente em 'Repositórios para os quais você contribui' .
É mais fácil:
- exclua seu
fix
branch (na verdade, agora ele foi excluído para você ) em seu fork (e em seu repositório clonado local: consulte " Excluir um branch Git local e remotamente ")
git pull upstream master
(se master
foi o branch no qual sua correção foi integrada: a fusão será rápida): nenhum rebase necessário neste ponto.
- recrie um branch de correção em cima de seu local atualizado
master
(agora com o mais recente de upstream master
).
No entanto, nunca se esqueça de uma etapa antes de enviar qualquer solicitação pull futura :
rebase primeiro seu branch atual ( fix
) do branch de destino upstream
( upstream
sendo o repo original que você bifurcou: veja " Qual é a diferença entre origem e upstream no github ")
Antes de enviar qualquer coisa de volta para o repo original ("upstream"), você precisa se certificar de que seu trabalho é baseado no último do dito repo original (ou a solicitação de pull não resultará em uma mesclagem de avanço rápido uma vez aplicada de volta ao upstream
repo).
Veja, por exemplo, " Fluxo de trabalho para gerenciar solicitações pull em repositórios compartilhados no github ".
Em outras palavras, upstream
pode evoluir (ter novos commits enviados) enquanto você está ocupado consertando coisas. Você precisa repetir suas correções sobre o trabalho mais recente do upstream para ter certeza de que seus commits ainda são compatíveis com o mais recente de upstream
.
O OP Santosh Kumar pergunta nos comentários :
Eu puxei e mesclei de upstream
mestre, e agora?
Se você não fez nenhuma nova correção desde sua solicitação pull recente, veja acima (exclua e recrie um novo branch fix
em cima do atualizado master
).
Se você tiver feito mais algum trabalho desde sua solicitação de pull, eu não faria a mesclagem de upstream
se quiser fazer uma nova solicitação de pull: eu puxaria e rebasearia :
git pull --rebase upstream master
Dessa forma, todo o meu novo trabalho local é reproduzido em cima dos upstream
master
commits mais recentes (obtidos em meu repositório local), supondo que master
seja o branch de destino que integrará minha solicitação de pull futura.
Em seguida, posso enviar meu trabalho local para ' origin
', que é minha bifurcação no GitHub do upstream
.
E da minha bifurcação no GitHub, posso fazer uma solicitação de pull com segurança, sabendo que só adicionará novos commits upstream
sem a necessidade de qualquer resolução de mesclagem: mesclar esses novos commits no upstream
repo significará uma mesclagem simples e rápida.
A git pull --rebase
sem especificar o branch no topo do qual você deseja realocar seu fix
branch (atualmente em check-out) não funcionaria:
Isso ( git pull --rebase
) diz:
You asked to pull from the remote '`upstream`', but did not specify a branch.
Devo anexar master finalmente? E o que isso vai fazer ?, vai deletar meu fix
branch?
Sim, você pode especificar o branch que será o alvo da solicitação de pull, por exemplo ' master
'.
Isso não excluirá seu fix
branch, mas irá reproduzi-lo em cima do upstream master
obtido em seu repo.
:)