Eu peguei o repositório de alguém no GitHub e gostaria de atualizar minha versão com confirmações e atualizações feitas no repositório original. Estes foram feitos depois que eu peguei minha cópia.
Como posso extrair as alterações feitas na origem e incorporá-las ao meu repositório?
git push --force origin --tags
após as soluções propostas!Respostas:
Você precisa adicionar o repositório original (o que você bifurcou) como um controle remoto.
Na página do manual do fork do GitHub :
Você também tem uma gema de rubi que pode facilitar essas operações do GitHub .
Veja também " Git fork é git clone? ".
fonte
git rebase upstream/master
, mas adicionei as duas possibilidades na resposta.git push --force
, substituindo o histórico de sua filial no GitHub pela filial local que você acabou de refazer. Como apenas você está usando um ramo triste, nenhuma bagunça está envolvida.Além da resposta do VonC, você pode ajustá-lo ainda mais.
Após buscar na ramificação remota, você ainda precisará mesclar as confirmações. Eu substituiria
com
já que o git pull é essencialmente git fetch + git merge.
fonte
git rebase upstream master
Observe que isso não está livre de conflitos se você tiver divergido o suficienteupstream/master
. Veja git-scm.com/docs/git-rebase (tl; dr: isso redefine seu mestre local para o upstream e, em seguida, tenta ressurgir todos os commits locais do ponto de divergência para a frente)Este vídeo mostra como atualizar um fork diretamente do GitHub
Passos:
Pull Requests
.New Pull Request
. Por padrão, o GitHub irá comparar o original com o seu fork, e não deve haver nada para comparar se você não tiver feito alterações.switching the base
. Agora o GitHub irá comparar seu fork com o original, e você deverá ver todas as alterações mais recentes.Create a pull request
nesta comparação e atribua um nome previsível à sua solicitação de recebimento (por exemplo, Atualização do original).Create pull request
.Merge pull request
e, finalmente,Confirm
mescle. Se o seu garfo não teve nenhuma alteração, você poderá mesclá-lo automaticamente.fonte
switching the base
opçãoUsar:
Isso configurará seu upstream para o repositório de onde você foi bifurcado. Então faça o seguinte:
Isso buscará todos os ramos, incluindo o mestre, do repositório original.
Mesclar esses dados em sua filial principal local:
Envie as alterações para o seu repositório bifurcado, ou seja, para a origem:
Voila! Você terminou de sincronizar o repositório original.
fonte
Se você estiver usando o aplicativo de desktop GitHub, há um botão de sincronização no canto superior direito. Clique nele e
Update from <original repo>
próximo ao canto superior esquerdo.Se não houver alterações a serem sincronizadas, isso ficará inativo.
Aqui estão algumas capturas de tela para facilitar isso.
fonte
Se não houver nada a perder, você também pode simplesmente excluir o seu fork, vá para as configurações ... vá para a seção zona de perigo abaixo e clique em excluir repositório. Ele solicitará que você insira o nome do repositório e sua senha depois. Depois disso, você apenas bifurca o original novamente.
fonte
Se você quiser fazer isso sem cli, poderá fazê-lo totalmente no site do Github.
New pull request
.Create new pull request
.fonte
Para sincronizar automaticamente seu repositório bifurcado com o repositório pai, você pode usar o aplicativo Pull no GitHub.
Consulte o Leia-me para mais detalhes.
Para configuração avançada em que você deseja preservar as alterações feitas no repositório bifurcado, consulte minha resposta em uma pergunta semelhante aqui .
fonte