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 masterdirettamente origin/mastercon:
git checkout -B master origin/master
La git checkoutpagina man menziona:
Se -Bviene 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/masterramo e quindi ripristina il masterramo lì.
git fetch origin masterprima di essere sicuro che origin/mastersia aggiornato?
git fetchprima
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à masterattivo puoi effettuare le seguenti operazioni:
git reset --hard origin/master
Indirizzerà il masterramo locale verso il remoto origin/mastere scarterà qualsiasi modifica nella directory di lavoro.
git checkout -B master origin/master?