Accidentalmente empujé un cambio por etapas en una nueva rama en Visual Studio 2017 a mi repositorio local. No se ha enviado al repositorio remoto. Quiero deshacerme de él, pero no encuentro la forma de hacerlo. Rebasé de la rama maestra local a la nueva rama. Luego eliminé la nueva rama. Pero Outgoing Commits todavía lo demuestra. ¿Cómo eliminarlo o revertirlo?
git
visual-studio
visual-studio-2017
Tony_Henrich
fuente
fuente
Respuestas:
Abra la pestaña del historial en Team Explorer desde el mosaico Ramas (haga clic con el botón derecho en su rama). Luego, en el historial, haga clic con el botón derecho en la confirmación antes de la que no desea enviar, elija Restablecer. Eso hará que la rama vuelva a esa confirmación y debería eliminar la confirmación adicional que realizó. Para restablecer antes de una determinada confirmación, debe seleccionar su padre.
Dependiendo de lo que quiera hacer con los cambios, elija difícil , lo que los eliminará localmente. O elija suave que deshará la confirmación pero dejará su directorio de trabajo con los cambios en su confirmación descartada.
fuente
No pude encontrar una sola buena respuesta que me ayudara a deshacerme de este problema.
Digamos que el nombre de la rama en la que ha realizado cambios accidentalmente es
master
. Seguir cuatro sencillos pasos me resultó como un mundo:master
master
remotes/origin
fuente
revert
Suponiendo que ha enviado los cambios más recientes al servidor:
Una vez que vuelva a abrir el proyecto, tanto las confirmaciones como los cambios deberían ser cero.
fuente
TL; DR:
Usar
git reset --soft HEAD~
en el cmd de la carpeta .slnLo estaba enfrentando hoy y estaba abrumado de que
VSCode
sugiriera tal cosa, mientras que su hermano mayorVisual Studio
no.La mayoría de las respuestas fueron útiles; si tengo más confirmaciones que se hicieron antes, perderlas todas sería frustrante. Además, si lo
VSCode
hace en medio segundo, no debería ser complejo.Solo la respuesta de jessehouwing fue la más cercana a una solución simple.
Suponiendo que los compromisos no deseados fueron los últimos en suceder, así es como lo resolví:
Vaya a
Team Explorer
->Sync
. Allí verías todas las confirmaciones. Presione elActions
menú desplegable yOpen Command Prompt
Se le pedirá la ventana cmd, escriba
git reset --soft HEAD~
. Si hay varias confirmaciones no deseadas, agregue la cantidad después de~
(es decirgit reset --soft HEAD~5
)(Si no está usando
git
, verifique el uso coloquial).Espero que ayude, y espero que en la próxima versión el equipo de VS lo agregue incorporado
fuente
Vaya a la pestaña Team Explorer y luego haga clic en Ramas. En las sucursales, seleccione su sucursal desde remotos / origen. Por ejemplo, desea restablecer su rama maestra. Haga clic con el botón derecho en la rama maestra en remotos / origen, luego seleccione Restablecer y luego haga clic en Eliminar cambios. Esto restablecerá su sucursal local y eliminará todos los cambios confirmados localmente.
fuente
Intente volver a establecer la base de su rama maestra local en su rama maestra remota / de origen y resuelva cualquier conflicto en el proceso.
fuente
Tiene 2 opciones aquí para hacer eso, ya sea para descartar todas sus confirmaciones salientes O para deshacer una confirmación específica.
1- Descarta todas tus confirmaciones salientes:
Para descartar todas sus confirmaciones salientes Por ejemplo, si tiene una rama local llamada master de una rama remota, puede:
1- Cambie el nombre de su rama local de maestra a cualquier cosa para que pueda eliminarla. 2- Eliminar la rama renombrada. 3- crea una nueva rama desde el maestro
Así que ahora tienes una nueva rama sin tus confirmaciones.
2- Deshacer un compromiso específico: Para deshacer un compromiso específico, debe revertir lo innecesario mediante:
1- Haga doble clic en el compromiso innecesario. Haga doble clic en el compromiso innecesario 2- Haga clic en revertir Haga clic en revertir
Pero para su información, la confirmación revertida aparecerá en el historial de sus confirmaciones con la confirmación revertida.
fuente