Estoy trabajando en una rama (es decir design) y he realizado una serie de cambios, pero necesito descartarlos todos y restablecerlo para que coincida con la versión del repositorio. Pensé que git checkout designlo haría, pero solo me dice que ya estoy en la rama designy que tengo 3 archivos modificados.
¿Cómo descartaría esos cambios y obtendría la rama tal como está ahora en el servidor remoto?

git reset --hard HEAD^git reset --hard HEAD^realmente debería ser la respuesta aceptada. OP no preguntaba por otras ramas ...fuente
git rm [branch name].diffSi no desea ningún cambio
designy definitivamente desea que coincida con la rama de un control remoto, también puede eliminar la rama y volver a crearla:fuente
@Will, git immersion es un tutorial de git realmente agradable y simple. le mostrará cómo deshacer los cambios para los siguientes casos: no preparado, preparado y confirmado. laboratorios 14-18
fuente
Rubyinstalarse ... lo que no siempre parece una opciónCuando desee descartar cambios en su rama local, puede ocultar estos cambios usando el comando git stash.
git stash guardar "some_name"
Sus cambios se guardarán y podrá recuperarlos más tarde, si lo desea, o puede eliminarlos. Después de hacer esto, su rama no tendrá ningún código sin confirmar y puede extraer el último código de su rama principal usando git pull.
fuente
En la raíz de origen:
git reset ./ HEAD <--un-stage any staged changes git checkout ./ <--discard any unstaged changesfuente
Método REVERSIBLE para descartar todos los cambios:
He encontrado esta pregunta después de después de hacer una fusión y olvidar a la caja de desarrollar inmediatamente después. Lo adivinó: comencé a modificar algunos archivos directamente en el maestro . ¡Oh! Como mi situación no es única (todos lo hemos hecho, ¿no? ->), ofreceré una forma reversible que solía descartar todos los cambios para que el maestro parezca desarrollarse nuevamente.
Después de hacer una
git diffpara ver qué archivos se modificaron y evaluar el alcance de mi error, ejecuté:Después de guardar primero todos los cambios, luego se borraron. Todos los cambios realizados en los archivos por error en el maestro desaparecieron y se restauró la paridad.
Digamos que ahora quería restaurar esos cambios. Puedo hacer esto. El primer paso es encontrar el hash del alijo que acabo de borrar / soltar:
Después de aprender el hash, restauré con éxito los cambios no confirmados con:
Realmente no quería restaurar esos cambios, solo quería validar que podía recuperarlos, así que los borré de nuevo.
Otra opción es aplicar el alijo a una rama diferente , en lugar de borrar los cambios. Entonces, en términos de eliminar los cambios realizados al trabajar en la rama incorrecta,
stashle brinda mucha flexibilidad para recuperarse de su boo-boo.De todos modos, si desea un medio reversible de borrar los cambios en una sucursal, lo anterior es una forma menos peligrosa en este caso de uso.
fuente
git checkout -fEsto es suficiente para tu pregunta. Lo único que es, una vez hecho, está hecho. No hay deshacer.
fuente