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 design
lo haría, pero solo me dice que ya estoy en la rama design
y 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].diff
Si no desea ningún cambio
design
y 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
Ruby
instalarse ... 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 changes
fuente
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 diff
para 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,
stash
le 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 -f
Esto es suficiente para tu pregunta. Lo único que es, una vez hecho, está hecho. No hay deshacer.
fuente