
Mi operación de inserción falló debido a que mi colega envió una línea a la misma rama en la que estaba trabajando y olvidé guardar la mía, así que intenté revertir la confirmación de mi colega y copiarla en mis cambios, de esa manera solo una confirmación saliente han existido, pensé. No funcionó como quería, así que intenté restablecer su confirmación, hice clic derecho en la confirmación y luego hice clic en Restablecer->Eliminar --Hard (en Visual Studio), lo que eliminó todas sus confirmaciones y las mías.
Nuevamente confirmé mis cambios, solo que no pude enviarlos al servidor. Encontré el git reflog
comando, pero no estoy seguro de poder usarlo sin un cliente de escritorio Git.
¿Hay alguna manera de encontrar mi confirmación no enviada desde el servidor usando el cliente SSH? ¿O debería simplemente reescribir todo? Se han perdido entre 50 y 100 filas de código.
SOLUCIONADO:
Utilice el menú de Visual Studio Git cerca de la esquina superior izquierda -> Abrir en el símbolo del sistema y luego
git reflog
entonces
git cherry-pick <SHA-1>
donde SHA-1 es el encabezado de la rama (por ejemplo, HEAD@{1}) como se describe en el enlace a continuación en las respuestas del usuario1686.
Respuesta1
Cualquiera git reflog
o git fsck --unreachable
como se describe enhttps://stackoverflow.com/questions/30035998/deleted-branch-unexpectedly-git-in-visual-studioPuede encontrar confirmaciones perdidas recientemente.
Sin embargo, los métodos de recuperación deben ejecutarse en un repositorio donde se realicen esas confirmaciones.eranvisible anteriormente. Si una confirmación no se envió correctamente, entonces no estará en el servidor Git en absoluto; el único lugar donde estará será su repositorio Git local en VS.
(Aunque también puede haber un "reflog" en el repositorio del servidor, solo se actualizará si el envío fue exitoso. Por ejemplo, SSH podría usarse para recuperar confirmaciones que se enviaron exitosamente pero que se sobrescribieron con un envío forzado posterior. pero no aquellos que fueron rechazados de plano.)
Encontré el comando 'git reflog', pero no estoy seguro de poder usarlo sin usar un cliente de escritorio Git.
'git reflog' es delHerramientas de línea de comandos de Git, que generalmente se incluyen con la mayoría de los clientes de escritorio Git, pero en realidad no están vinculados a ninguna aplicación.
Ya estás usando un cliente de escritorio Git, Visual Studio, que también instala una copia de Git, por lo que debería ser suficiente con cd
ir a tu directorio de origen y ejecutarlo git
desde allí.