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 :master
origin/master
git checkout -B master origin/master
A git checkout
página do manual menciona:
Se -B
for 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/master
ramo e redefina o master
ramo lá.
git fetch origin master
antes para ter certeza de que origin/master
está atualizado?
git fetch
primeiro
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á master
estiver conectado, faça o seguinte:
git reset --hard origin/master
Ele apontará a master
ramificação local para o controle remoto origin/master
e descartará quaisquer modificações no diretório de trabalho.
git checkout -B master origin/master
?