emacs - ¿Cómo puedo diferenciar un solo archivo con Magit?
git-diff (3)
Definitivamente, hay ventajas de no ir en contra del grano cuando se usan herramientas, como lo ejemplifican las otras respuestas.
Por otro lado, a veces solo quiere decirle a su editor qué hacer y hacer que la gente en Internet responda sus preguntas en lugar de decirle que quiere hacer otra cosa.
magit proporciona una interfaz de menú para hacer cosas al archivo actual a través de Mx magit-file-popup
. Las teclas que necesitas presionar desde aquí son "du". Esto puede ser demasiadas pulsaciones de teclas para usted, si este es el caso, puede llamar a magit-diff
directamente de magit-diff
forma:
(magit-diff "master" nil (list buffer-file-name))
Es posible que desee definir su propia función y combinación de teclas para esto.
magit-diff
tiene ventajas sobre vc-diff
porque si te permite saltar a la ubicación del diff.
Digamos que he realizado una serie de cambios no relacionados a los archivos no acoplados en mi repositorio git. Quiero revisar y confirmar cada uno de los archivos por separado.
magit-status
y obtengo una lista de archivos modificados. Pero los únicos comandos de magit diff que puedo encontrar ( d
y D
) dif son revisones completos, no archivos individuales.
Quiero la salida de git diff <filename>
, pero en el búfer magit diff. ¿Cómo puedo hacer que Magit difiera solo un archivo?
Magit le permite "revisar y confirmar cada uno de los archivos por separado" directamente desde el magit-status
, sin la necesidad de búferes de diferencia separados.
Simplemente expande los archivos en los que está interesado (con TAB , que le muestra la diferencia del archivo en el punto); luego puede organizar los bits de la misma que desee confirmar (ya sea todo el archivo o fragmentos individuales, o incluso una región marcada) con s para poner en escena (o u para anular el escenario). Repita para todos los cambios involucrados en ese compromiso y, una vez que todo lo necesario haya sido preparado, presione c para comenzar el compromiso.
nb Si realmente desea ver el diff de un archivo en un búfer separado, puede usar vc-diff
enlazado a Cx v = en el búfer de ese archivo. (nb esa es la funcionalidad predeterminada en Emacs; no es parte de Magit).
(edit: respuesta reescrita a causa del comentario de aap, que ahora parece decir lo contrario de lo que significaba en ese momento).
Recomiendo ver el video del creador de magit. Son 20 minutos y le muestra el flujo de trabajo tal como estaba previsto.
Además, un pequeño consejo: puede usar 1 2 3 para cambiar la verbosidad de la diferencia del encabezado actual.
Otro pequeño consejo: si no está satisfecho con el tamaño de los hunks, puede organizar regiones arbitrarias marcando una región y presionando s . Es magia. No conocía esta opción por un tiempo, en realidad estaba volviendo a la consola y haciendo git add -p
la manera tradicional.