$ 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
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
@yourfriendzak, olvidé tener en cuenta que es posible que ya haya revisado el master antes de actualizar el master. He actualizado la respuesta para que sea una que debería funcionar incluso en ese caso también.
Alexander Bird
Esto funciona incluso si no está en el maestro (como un estado HEAD separado que en realidad apunta al origen / maestro de la punta). Luego, puede pagar el master sin tener que voltear archivos viejos a través del repositorio. ¡Excelente!
Andrew Mao
20
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.
Respuestas:
Como KindDragon 's respuesta menciona, puede volver a crear
masterdirectamente enorigin/masterla: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 deOriginalmente sugerido:
Algo como:
con el paso 2 siendo opcional.
fuente
Git admite este comando:
Echa un vistazo a la
origin/masterrama y luego reinicia lamasterrama allí.fuente
git fetch origin masterantes para estar seguro de queorigin/masterestá actualizado?git fetchprimeroCreo que incluso la respuesta de VonC tiene complejidad en comparación con esta opción:
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 gcfuente
Already on 'master'Si ya está conectado
master, puede hacer lo siguiente:git reset --hard origin/masterApuntará la
masterrama local al control remotoorigin/mastery descartará cualquier modificación en el directorio de trabajo.fuente
git checkout -B master origin/master?