Git redefinir a ramificação local para um no repositório remoto
Este tutorial mostrará como redefinir um branch local no repositório local no git para ser como o branch no repositório remoto. Opcionalmente, podemos descartar quaisquer alterações não rastreadas no repositório local.
Normalmente, temos uma ramificação local com algumas alterações que não são mais necessárias ou estão desatualizadas. Além disso, precisamos buscar as mudanças que estão no repositório remoto.
Geralmente acontece quando estamos trabalhando em um ambiente colaborativo; e algum outro membro da equipe fez algumas mudanças (correções, desenvolvimento de recursos, etc.) e colocou-as no branch remoto (ex. master
).
Assim, precisamos fazer um reset
do branch local no repositório local e sincronizar com o do repositório remoto.
Vamos agora ilustrar isso com um exemplo.
Usando git reset
para redefinir a ramificação local para uma no repositório remoto
Normalmente temos uma ramificação local viz. master
usado para rastrear o branch remoto com o mesmo nome no repositório remoto.
Agora faremos um checkout
para a ramificação local viz. master
, se ainda não estivermos nele. Além disso, git checkout
remove os arquivos não rastreados.
$ git checkout master
Executaremos o seguinte comando para redefinir o viz do branch local. master
, para o repositório remoto.
$ git fetch origin
$ git reset --hard origin/master
O primeiro comando, get fetch
, baixa os objetos e referências de origin
; a origin
é um apelido criado por git para a URL remota do repositório remoto.
O segundo comando, get reset
, redefine o HEAD
atual para aquele no ramal remoto. Observe que isso removerá todas as alterações locais.
Todas as alterações / commits que temos no branch remoto no repositório remoto estão presentes no branch local do repositório local.
Opcionalmente, também podemos limpar as alterações não rastreadas executando o seguinte comando.
$ git clean -xdf