Para receber os novos commits
git fetch
Redefinir
Você pode redefinir a confirmação para uma filial local usando git reset
.
Para alterar a confirmação de uma ramificação local:
git reset origin/master --hard
Tenha cuidado, porém, como a documentação coloca:
Redefine o índice e a árvore de trabalho. Quaisquer alterações nos arquivos rastreados na árvore de trabalho desde que <commit> sejam descartadas.
Se você deseja realmente manter as alterações localmente, faça uma --soft
redefinição. O que atualizará o histórico de consolidação da ramificação, mas não alterará nenhum arquivo no diretório ativo (e você poderá confirmá-los).
Rebase
Você pode reproduzir seus commits locais sobre qualquer outro commit / branch usando git rebase
:
git rebase -i origin/master
Isso invocará o rebase no modo interativo, onde você poderá escolher como aplicar cada confirmação individual que não está no histórico que você está refazendo.
Se as confirmações que você removeu (com git push -f
) já foram inseridas no histórico local, elas serão listadas como confirmações que serão reaplicadas - elas precisarão ser excluídas como parte da reestruturação ou serão simplesmente incluídas novamente na história para o ramo - e reaparecer no histórico remoto no próximo impulso.
Use a ajuda git command --help
para obter mais detalhes e exemplos de qualquer um dos comandos acima (ou outros).
git checkout master && git branch -D test && git checkout -b test origin/test