¿Es posible abrir una revisión específica de un archivo en Emacs con Magit sin cambiar la rama actual?
Reescribí algunos cambios locales en una revisión donde las funciones modificadas fueron reemplazadas por la funcionalidad en un archivo diferente. Me gustaría abrir la revisión anterior de mis cambios en un búfer separado para poder comparar los cambios uno al lado del otro.
Mi solución hacky actual ha sido ejecutar git show <branch pre-rebase>:file > old_file
y luego abrir old_file
en Emacs.
git-timemachine
pero dado que mi código ha sido modificado, ¿no creo que funcione ya que el código anterior no es parte del historial de la sucursal actual?Respuestas:
Puede ver un archivo para una revisión específica usando M-x
magit-find-file
RET<filename>
RET.O puede ver primero el diff para confirmar presionándolo RET, navegando al archivo dentro del diff y luego presionando RETnuevamente.
fuente
M-x magit-log-buffer-file
, mueva la línea a la confirmación deseada, entoncesM-x magit-find-file
. Entonces el valor predeterminado será ese commit. Tengo que dar la ruta al archivo ya que esto no se recoge del búfer de registro.magit-find-file
desde un búfer de visita de archivos y luego simplemente escribaRET
en el segundo indicador (el archivo apropiado se ofrece como predeterminado).Es posible hacerlo con VC simple (integrado en Emacs), sin Magit. Escriba
C-x v ~
y escriba la versión que desee. Entiende las etiquetas y los hash SHA1, así como los~1
sufijos habituales, etc.fuente