¿Puede Git mostrar el historial de las líneas seleccionadas?

2 minutos de lectura

Tengo un archivo grande donde, en algún lugar del medio, hay una función que sé que se ha modificado varias veces. git annotate o blame mostrará la confirmación más reciente para cada línea, pero si no me equivoco, se mostrará solamente el más reciente, no una lista de otras confirmaciones que afectaron esa línea antes.

Entonces, ¿hay un comando en Git donde pueda decir algo como muéstrame confirmaciones que afectaron las líneas 250..260 en el archivo XYZ?

  • no línea, sino git log … – muestra solo las confirmaciones que afectan las rutas especificadas. tal vez ayude

    – 0xAX

    30 de mayo de 2012 a las 12:49

  • Posible duplicado de ¿cómo veo el historial de cambios de un método/función?

    – Carlos B

    30 de mayo de 2012 a las 12:52

  • Gracias @CharlesB, encontré algunos buenos consejos allí y los publiqué como respuesta aquí.

    – Borek Bernard

    30 de mayo de 2012 a las 13:07

  • posible duplicado de Recuperar el registro de confirmación para una línea específica en un archivo?

    – lpapp

    10 de octubre de 2014 a las 8:25

avatar de usuario
Borek Bernardo

Como se sugiere en uno de los comentarios en Git: ¿cómo veo el historial de cambios de un método/función?

git gui blame <file>

y luego haciendo clic derecho en una línea y seleccionando Compromiso de los padres de culpa hace lo que necesito

phpStorm puede hacer esto. Seleccione las líneas -> haga clic con el botón derecho -> Git -> Mostrar historial de selección

  • ¡Qué increíble característica! Gracias por traerlo a mi atención!!

    – pymarco

    25/03/2014 a las 21:22

  • intellij también lo hace

    –David Mann

    04/02/2016 a las 19:52

avatar de usuario
Cantante

git show $(git blame XYZ -L 250,260 | awk '{print $1}')

Cada línea de código siempre está documentada. vía @mislav

  • Ojalá los resultados fueran cronológicos.

    –David Winiecki

    24 de noviembre de 2014 a las 22:22

Seleccione línea -> Haga clic con el botón derecho-> Git-> Anotar

Creo que eso no es posible. Tendrás que escribir un script en torno a la culpa de git. Puedes encontrar un bash ejemplo de un script de este tipo en GitHub.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad