Posso fazer o seguinte de uma maneira mais simples?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Posso fazer o seguinte de uma maneira mais simples?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Respostas:
Como a resposta do KindDragon menciona, você pode recriar diretamente em :masterorigin/master
git checkout -B master origin/master
A git checkoutpágina do manual menciona:
Se -Bfor dado, <new_branch>é criado se não existir; caso contrário, é redefinido . Este é o equivalente transacional de
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
Originalmente sugerido:
Algo como:
$ git checkout master
# remember where the master was referencing to
$ git branch previous_master
# Reset master back to origin/master
$ git reset --hard origin/master
com o passo 2 sendo opcional.
O Git suporta este comando:
git checkout -B master origin/master
Confira o origin/masterramo e redefina o masterramo lá.
git fetch origin masterantes para ter certeza de que origin/masterestá atualizado?
git fetchprimeiro
Eu acho que até a resposta do VonC tem complexidade em comparação com esta opção:
git update-ref refs/heads/master origin/master
git reset --hard master
O git registra automaticamente todos os valores de uma ref (através do reflog). Portanto, depois de executar esse comando, master@{1}refere-se ao valor anterior de master.
A resposta do VonC está correta, mas desperdiça tempo de checkout do valor antigo de master no sistema de arquivos.
Se você se importa com objetos órfãos no repositório, pode executar git gc
Already on 'master'
Se você já masterestiver conectado, faça o seguinte:
git reset --hard origin/master
Ele apontará a masterramificação local para o controle remoto origin/mastere descartará quaisquer modificações no diretório de trabalho.
git checkout -B master origin/master?