¿Cómo elegir fácilmente cereza con magit?

40

Llevo unos meses usando magit y me gusta mucho. Pero una cosa que aún hago en una terminal es la recolección de cerezas.

¿Cuál es una manera simple de hacer esto?

caisah
fuente

Respuestas:

31

Donde sea que vea una confirmación en un búfer Magit, puede seleccionarla moviendo el punto allí y luego escribiendo A A. También puede seleccionar múltiples confirmaciones a la vez: solo seleccione algunas confirmaciones usando la región y luego presione A A.

tarsius
fuente
45

Versión Magit <= 1.4.2

Es bastante fácil:

  1. Ingresar resumen magit-status
  2. Echa un vistazo (presiona b b) a la rama que deseas elegir.
  3. Haga un rango de registro (presione l r l) para encontrar las confirmaciones que desea elegir. Aquí selecciona las 2 ramas que desea comparar.
  4. Desplácese hasta la confirmación que desea seleccionar y presione Apara aplicar los cambios y también organícelos junto con el mensaje de confirmación. Si presiona a, no se realizarán los cambios, sino que solo se aplicarán.

No necesita hacer un rango de registro para elegir cereza. Cada vez que vea un registro de confirmación, puede presionar Apara seleccionarlo.

Versión Magit> = 2.1.0

Después de actualizar magit a 2.1, el flujo de trabajo es diferente. Para ambos métodos, primero debe iniciar magit-status.

Método A : Cherry Pick cambia de otra rama una por una

  1. Presione ly luego opara obtener una lista de otras ramas.
  2. Seleccione la rama de la que desea elegir la cereza.
  3. Vaya al compromiso que necesita y presione Aseguido de Anuevo.
  4. La línea de estado le mostrará qué confirmación seleccionó

    p.ej feature/ABC~4

    Presione Enterpara aplicar los cambios.

Método B : Cherry Elija todos los cambios de otra rama

  1. Presione Apara elegir el modo de selección de cereza.
  2. Presione Anuevamente para aplicar y confirmar los cambios. Presione apara aplicar solo los cambios.
  3. Elija una rama para seleccionar los cambios y presione Enter.

Personalmente, prefiero el método A, ya que puede manejar mejor los conflictos de fusión.

cb0
fuente
8

No uso la recolección de cerezas, sino ir ?a magit-statusespectáculos y: Cherry. Esto ejecuta el comando magit-cherry, que le permite elegir una cabeza y una corriente arriba. Parece que esto es lo que quieres.

Puede escribir C-h r d m Magit RETpara leer el manual de Magit. Puede usar C-s cherryun golpe repetido C-spara buscar en el manual. Parece que la información está en la sección 23:

Una de las comodidades gites que puede decirle qué compromisos se han fusionado en sentido ascendente, pero no localmente y viceversa. El subcomando de Git para esto es cherry(no debe confundirse con cherry-pick). Magit tiene soporte para esto invocando lo magit-cherryque está obligado ypor defecto.

Magit le preguntará primero por la revisión aguas arriba (que por defecto es la rama remota actualmente rastreada, si la hay) y la revisión principal (que por defecto es la rama actual) para usar en la comparación. Luego verá un nuevo búfer en el que todas las confirmaciones se enumeran con un marcador direccional, su revisión y la primera línea del mensaje de confirmación. El marcador direccional +indica una confirmación que está presente en sentido ascendente pero no en la cabecera o -que indica una confirmación presente en la cabecera pero no en sentido ascendente.

De esta lista, puede utilizar las combinaciones de teclas habituales para seleccionar confirmaciones individuales ( apara seleccionar sin comprometer y A para lo mismo más la confirmación automática). El búfer se actualiza automáticamente después de cada selección de cereza.

niñera
fuente
1
Al invocar el manual Magit, puede guardar una pulsación de tecla haciendo en C-h ilugar de C-h r d. Esto lo llevará directamente al nivel superior de información.
itsjeyd
1
@itsjeyd Nahh, C-h ilo llevará al último archivo de información que abrió, por lo que si presiono, C-h i mpodría estar mirando un menú de capítulos en SICP en lugar de un menú de todo. Golpear ddespués C-h io C-h rse asegurará de que estará en el directorio de información antes de golpear m.
niñera
Es un buen truco, ¡no lo sabía! Además, totalmente fuera de tema: ¿Una versión de información de SICP? ¿Dónde puedo obtener una copia? :)
itsjeyd
@itsjeyd Lo guardo en mi Dropbox, creo que lo obtuve de aquí: github.com/webframp/sicp-info
niñera
1
¡Gracias! Revisé MELPA y resulta que hay un paquete que se construye desde ese repositorio. Instalar la versión Info de SICP es tan fácil como M-x package-install RET sicp RET:)
itsjeyd