$ 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
salve quatro pressionamentos de tecla - você não precisa das aspas. Just: git checkout -B origem master / mestre
zumalifeguard
digamos que cometi 2 coisas, a primeira é uma mesclagem com branch e a segunda é regular. O que acontece com a mesclagem se eu voltar à origem / mestre?
Utdev 22/12
11
você não precisa git fetch origin masterantes para ter certeza de que origin/masterestá atualizado?
31817 pedrozath
Sim, claro com todas as soluções que você deve fazer git fetchprimeiro
KindDragon
29
Eu acho que até a resposta do VonC tem complexidade em comparação com esta opção:
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
@yourfriendzak, esqueci-me de levar em consideração que você já deve ter feito o check-out do mestre antes de atualizar o master. Atualizei a resposta para que ela funcione também nesse caso.
22613 Alexander Bird
Isso funciona mesmo se você não estiver no mestre (como um estado HEAD desanexado que está realmente apontando para a origem / mestre da dica). Em seguida, você pode fazer o checkout do mestre sem precisar percorrer os arquivos antigos no repositório. Ótimo!
Andrew Mao
20
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.
Respostas:
Como a resposta do KindDragon menciona, você pode recriar diretamente em :
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 deOriginalmente sugerido:
Algo como:
com o passo 2 sendo opcional.
fonte
O Git suporta este comando:
Confira o
origin/master
ramo e redefina omaster
ramo lá.fonte
git fetch origin master
antes para ter certeza de queorigin/master
está atualizado?git fetch
primeiroEu acho que até a resposta do VonC tem complexidade em comparação com esta opção:
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
fonte
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 remotoorigin/master
e descartará quaisquer modificações no diretório de trabalho.fonte
git checkout -B master origin/master
?