¿Cómo puedo revertir el repository Git de mi proyecto sin romper Visual Studio?

¿Cuál es la forma less dolorosa de poner mi repository git en el estado que necesito para nuestro proyecto Visual Studio?

En términos de Visual Studio, comenzamos con un proyecto de website. La versión de producción actual del sitio es, en su mayoría, una twig (antigua) de ese proyecto de website, aparte de unas pocas soluciones importantes que se han realizado para la producción.

Trajimos algunos contratistas para agregar una nueva característica al sitio, y ellos tomaron nuestro código y lo importaron en un (nuevo) Proyecto de Aplicación Web, y luego actualizaron los files y nos enviaron una request de extracción. Como las routes de los files eran muy diferentes y algunos otros cambios eran bastante dolorosos, convertí la twig de desarrollo de nuestro proyecto de website en un proyecto de aplicación web, reubicé los files para que coincidieran con las nuevas routes y luego fusioné sus cambios, corrigiendo todos manualmente los conflictos de fusión entre su nuevo Proyecto de Aplicación Web y nuestro Proyecto de Aplicación Web convertido (y si nunca ha solucionado conflictos de fusión manualmente en los files de configuration XML de un proyecto de Visual Studio, considérese afortunado).

Entonces, si imagina nuestro repository de git, ahora hay dos twigs en cuestión: dev, que se ha convertido en un Proyecto de aplicación web, y prod, que sigue siendo un proyecto de website, y que está ligeramente desincronizado con el sitio de producción real para … razones.

El cliente no ha aprobado los cambios en dev y no es probable que los apruebe en el corto ploop; sin embargo, necesitan un cambio crítico en la producción que (a diferencia de los cambios previos de la revisión en la producción) es de un scope lo suficientemente grande como para que se ejecute a través de un process de aprobación / qa / aprobación completo.

En este punto, hay ventajas de tener todo el sitio como un Proyecto de aplicación web (ventajas que no eran relevantes cuando el sitio se creó como un Proyecto de website y se registró en git en primer lugar). ¿Cuál es mi mejor plan de ataque para git, que no dará como resultado un proyecto roto en Visual Studio pero me llevará a una twig de desarrollo nueva o revertida que sea tanto un proyecto de aplicación web como consistente con el estado real de producción?

Sé que probablemente va a implicar al less una nueva sucursal para manejar la fusión entre el código de producción y la estructura del proyecto de aplicación web de la twig de desarrollo, pero no sé por dónde empezar. ¿Reviso dev por encima de prod? Prod sobre la parte superior de dev? ¿Una nueva sucursal vacía donde los reviso a ambos en algún order?

No estoy muy familiarizado con Visual Studio, pero creo que debe convertir el proyecto de la twig de producción a Web Application Project y hacer que las routes de files en la twig de desarrollo y las routes de files en la twig de producción sean lo más similares posibles y luego fusionarlas.

Visual Studio usa Git. No es un tipo de Git VS-only.

Mi recomendación es crear una nueva twig, la llamaré web-app-feature .

Así que git checkout dev , git branch web-app-feature . Ahora tiene una nueva twig que apunta a la misma confirmación como dev . Ahora tenemos que mover dev al master que en Git es muy simple. Realice un git reset --hard master que indica al HEAD actual (que es dev porque fue nuestro último pago) que apunte el mismo compromiso como master .

Ahora su repository se parece un poco a *-*-*-*-*<- master, dev | *-*-*-*-*-*<-web-app-feature *-*-*-*-*<- master, dev | *-*-*-*-*-*<-web-app-feature