¿Puedo hacer lo siguiente de una manera más simple?
git checkout origin/master
git branch -D master
git branch master
git checkout master
¿Puedo hacer lo siguiente de una manera más simple?
git checkout origin/master
git branch -D master
git branch master
git checkout master
Respuestas:
Como KindDragon 's respuesta menciona, puede volver a crear masterdirectamente en origin/masterla:
git checkout -B master origin/master
La git checkoutpágina de manual menciona:
Si -Bse da, <new_branch>se crea si no existe; de lo contrario, se restablece . Este es el equivalente transaccional 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
con el paso 2 siendo opcional.
Git admite este comando:
git checkout -B master origin/master
Echa un vistazo a la origin/masterrama y luego reinicia la masterrama allí.
git fetch origin masterantes para estar seguro de que origin/masterestá actualizado?
git fetchprimero
Creo que incluso la respuesta de VonC tiene complejidad en comparación con esta opción:
git update-ref refs/heads/master origin/master
git reset --hard master
git registra automáticamente cada valor de una referencia (a través del registro de referencias). Entonces, después de ejecutar ese comando, se master@{1}refiere al valor anterior de master.
La respuesta de VonC es correcta, pero desperdicia tiempo revisando el antiguo valor de master en el sistema de archivos.
Si le importan los objetos huérfanos en el repositorio, puede ejecutar git gc
Already on 'master'
Si ya está conectado master, puede hacer lo siguiente:
git reset --hard origin/master
Apuntará la masterrama local al control remoto origin/mastery descartará cualquier modificación en el directorio de trabajo.
git checkout -B master origin/master?