Mostrar información de culpa para una línea del búfer * magit *

Pregunta:

Hay un flujo de trabajo que suelo hacer con bastante frecuencia y me pregunto si Magit podría ayudarme. Hice un montón de confirmaciones de git en una rama, todavía no las empujé, y noté un pequeño error en mi trabajo sin presionar que me gustaría corregir modificando la confirmación que lo introdujo en lugar de hacer una nueva cometer.

Puedo usar la culpa para encontrar la confirmación ofensiva, hacer un cambio de base interactivo y editar la confirmación ofensiva. Pero eso no siempre es conveniente. Por ejemplo, si ejecuto un proceso de validación y encuentro varios problemas menores, entonces necesito arreglar varias confirmaciones. Lo que hago es hacer todas las correcciones, confirmarlas por separado y luego hacer una rebase interactiva para aplicarlas como correcciones. (Por el bien de esta pregunta, asuma que esto no dará lugar a un conflicto). Entonces, mi flujo de trabajo es, para cada corrección:

  1. Organiza la solución.
  2. Utilice la culpa para localizar la confirmación que debe modificarse. Hago esto desde vc-annotate , porque me muestra el ID de confirmación para cada línea de una manera muy práctica.
  3. Confirme la corrección con el mensaje de corrección fixup 1234567 donde 1234567 es el ID de confirmación.

  4. Luego hago una rebase interactiva para aplicar la fixup NNNNNNN como arreglos a sus respectivos NNNNNNN.

¿Puede Magit ayudarme con el paso 2? Estoy en el *magit* , mirando una línea eliminada o sin cambios, y quiero la información de culpa para esa línea, es decir, el ID de confirmación que introdujo esa línea.

modified   myfile
@@ -1,3 +1,3
 foo
-bat               ←My cursor is here. What commit introduced `bat`?
+bar
 qux

Respuesta:

Desde que comencé a usar git autofixup , he ahorrado mucho tiempo para determinar "el compromiso en el que debería haberlo hecho en primer lugar".

Envolturas Magit que a medida que magit-commit-absorb , pero este comando no está disponible en el menú emergente de comprometerse de manera predeterminada todavía.

Este es un flujo de trabajo típico.

  1. No montar los cambios. ( git autofixup opera en todos los cambios no escalonados y se niega a hacer nada si hay cambios escalonados. Creo que, en cambio, debería operar en los cambios escalonados e ignorar los no escalonados. Quizás en una versión futura).

  2. Escriba cx . (Después de haber agregado ese enlace para magit-commit-absorb ).

  3. Mire brevemente las confirmaciones de reparación generadas.

  4. rf para unirse a las confirmaciones de reparación con sus objetivos.

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top

web tasarım