Posso fare quanto segue in un modo più semplice?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Posso fare quanto segue in un modo più semplice?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Risposte:
Come KindDragon 's risposta accenna, è possibile ricreare master
direttamente origin/master
con:
git checkout -B master origin/master
La git checkout
pagina man menziona:
Se -B
viene fornito, <new_branch>
viene creato se non esiste; in caso contrario, viene ripristinato . Questo è l'equivalente transazionale di
$ git branch -f <branch> [<start point>]
$ git checkout <branch>
Inizialmente suggerito:
Qualcosa di simile a:
$ 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
con il passaggio 2 facoltativo.
Git supporta questo comando:
git checkout -B master origin/master
Controlla il origin/master
ramo e quindi ripristina il master
ramo lì.
git fetch origin master
prima di essere sicuro che origin/master
sia aggiornato?
git fetch
prima
Penso che anche la risposta di VonC abbia complessità rispetto a questa opzione:
git update-ref refs/heads/master origin/master
git reset --hard master
git registra automaticamente ogni valore di un ref (tramite il reflog). Quindi dopo aver eseguito quel comando, si master@{1}
riferisce al valore precedente di master.
La risposta di VonC è corretta, ma fa perdere tempo a controllare il vecchio valore di master nel filesystem.
Se ti interessano gli oggetti orfani nel repository, puoi eseguirlo git gc
Already on 'master'
Se sei già master
attivo puoi effettuare le seguenti operazioni:
git reset --hard origin/master
Indirizzerà il master
ramo locale verso il remoto origin/master
e scarterà qualsiasi modifica nella directory di lavoro.
git checkout -B master origin/master
?