Você já encontrou como adicionar outro controle remoto e extrair diretamente dele:
git remote add original https://code.google.com/p/leveldb/
git pull original master
Se você quiser fazer a busca e mesclar separadamente (em vez de um único comando pull; talvez porque você queira inspecionar o que mudou antes de mesclá-lo), então você pode fazer assim:
git fetch original # update refs/remotes/original/*
git merge original/master # merge refs/remotes/original/master
Você pode inspecionar as alterações antes de se fundir com este comando:
git log --reverse -p original/master@{1}..original/master@{0}
Em vez de usar a especificação de revisão baseada em reflog acima, você também pode simplesmente copiar e colar a especificação de revisão oldhash..newhash
que foi produzida durante a busca.
Tecnicamente, git pull remote branch
está mais perto deste par de comandos:
git fetch remote-or-url branch # grab remote branch and put it in FETCH_HEAD
git merge FETCH_HEAD # merge it
mas esse par (e, portanto, também o uso de um controle remoto e um ramo especificados) geralmente não é tão bom, pois não atualiza os ramos de rastreamento remoto ( refs/remotes/original/*
). As invocações remotas + de ramificação de busca e extração são úteis para fusões únicas de repositórios para os quais você não deseja manter um conjunto completo de ramificações de rastreamento remoto (ou seja, buscar / extrair uma solicitação de mesclagem de um colaborador menor / raro) .