git - usar - visual studio code bitbucket
¿Cómo se obtiene una versión específica de Git en Visual Studio 2015? (2)
¿Hay alguna forma de obtener una versión específica (de un compromiso específico) de un archivo en Visual Studio 2015 - Team Explorer / Team Services Git?
Simplemente deseo ejecutar la solución con una versión anterior de un archivo para ver cómo se ejecutaban las cosas y luego volver a la última versión para continuar con el desarrollo.
No he creado ninguna rama. Seguí comprometiéndome en la rama "master".
Gracias a Matt Frear por señalar que mi respuesta original restablecería la solución completa a un compromiso específico, mientras que la pregunta era cómo usar una versión específica de un archivo mientras mantenía lo último de todo lo demás. Mantener el contenido original de la publicación en la parte inferior, en caso de que alguien lo encuentre útil.
Para mantener su solución completa a más tardar, pero use una versión anterior de un archivo individual:
Usando Visual Studio 2015 Update 3:
Agregaré capturas de pantalla y limpiaré / reformatearé la respuesta para que sea más fácil de seguir, pero quería obtener una respuesta modificada por ahí que aborde la pregunta con mayor precisión hasta que tenga tiempo para volver a visitarla.
- Ver el historial en la rama ( Team Explorer → Ramas → haga clic con el botón derecho en la rama)
- Haga clic con el botón derecho en la confirmación deseada y seleccione Restablecer → Restablecer y mantener cambios (- mezclado) . Su código local seguirá siendo lo que está en la confirmación más reciente, pero todos los cambios, ya que la confirmación deseada se mostrarán como cambios pendientes en Team Explorer → Modificaciones . El puntero de su rama ahora está en la confirmación que reinició, pero el código sigue siendo lo que está en la confirmación con la que comenzó (la confirmación más reciente).
- Vaya a Team Explorer → Cambios , haga clic con el botón derecho en el archivo para el que desea usar la versión en la confirmación deseada y seleccione "Deshacer cambios ..." . Esto revertirá ese archivo a la confirmación que reinició, deshaciendo a lo que está en esa confirmación.
Ahora tendrá lo último de cada archivo en el repositorio, excepto el archivo en el que acaba de deshacer los cambios. Ahora podría reiniciar la combinación mixta en la última confirmación para ver solo el archivo que está utilizando la versión anterior de Team Explorer → Changes , pero si todo lo que intenta hacer es ejecutar la solución, este paso no es necesario.
Para restablecer todo el repositorio de soluciones / fuentes a un compromiso específico:
Usando Visual Studio 2015 Update 3:
IMPORTANTE
Con este enfoque, cualquier compromiso saliente se perderá.
Asegúrese de realizar el paso 1 (empuje cualquier confirmación saliente)
- Asegúrese de que no tiene ningún compromiso de salida: realice un Push, si tiene compromisos de salida (* Team Explorer → Sync → Outgoing Commits )
- Ver el historial en la rama ( Team Explorer → Ramas → haga clic con el botón derecho en la rama)
Haga clic con el botón derecho en la confirmación deseada y seleccione Restablecer → Restablecer y eliminar cambios (--hard) . . En Team Explorer → Sync y luego en la ventana Ver historial, terminará con confirmaciones entrantes desde la confirmación deseada hasta la última confirmación en la rama remota, y su código local coincidirá con la confirmación deseada.
Cuando haya terminado, ejecute un tirón en Team Explorer → Sync para llevar a su sucursal local al último compromiso de la sucursal remota.
Vea esta gran respuesta que explica el comando ''git reset'' y la diferencia entre --hard vs --mixed.
En Visual Studio 2015, si lo hace Ver historial (desde el menú Acciones en el panel Cambios en el Explorador de equipo):
Luego haga clic derecho en el compromiso que le interesa:
Puedes crear una rama desde allí:
No puedo ver una manera de simplemente pagar la confirmación en Visual Studio.
Trabajando con la línea de comandos, puede hacer un checkout del SHA de confirmación que desea usar:
git checkout 9eab01d9
Cuando hayas terminado, simplemente echa un vistazo al maestro otra vez:
git checkout master
Es posible que reciba advertencias sobre el trabajo en una cabeza separada, en ese caso, podría crear una rama temporalmente :
git checkout -b temp-branch-name 9eab01d9
Es una buena idea sentirse cómodo con la línea de comandos de Git, las herramientas de Visual Studio están llegando, pero le faltan muchas características.