¿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 master
directamente en origin/master
la:
git checkout -B master origin/master
La git checkout
página de manual menciona:
Si -B
se 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/master
rama y luego reinicia la master
rama allí.
git fetch origin master
antes para estar seguro de que origin/master
está actualizado?
git fetch
primero
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 master
rama local al control remoto origin/master
y descartará cualquier modificación en el directorio de trabajo.
git checkout -B master origin/master
?