Lo que he aprendido: magit

He empezado a usar Magit. Tanto escuchar Magit es el mejor modo para git jamás creado y yo empecé a usar Emacs por Magit me han convencido a darle una oportunidad. Eso y que el modo git normal que usaba no me carrula bien en el ordenador del curro (¡Windows!).

La cuestión es que Magit me flipa, puedo manejar mi repo desde Emacs solo dando a un par de teclas y ayudando por tanto a mis pobres bracitos lesionados por el ordenador.

Lo más curioso de este modo es que funciona a base de ventanitas (pop ups) en las que se nos dan opciones diversas. A cada ventanita se accede con una tecla y podemos acceder a la ventanita de las ventanitas con h (help). Cada ventanita se divide en dos pedazos, en la parte superior activamos las opciones y en la inferior elegimos el comando. No os preocupéis que enseguida lo veremos todo mucho más claro.

Por cierto, si como yo usáis Emacs con GUI y menús (¡sacrilegio!) tendréis en la barrita un menú de Magit con las diferentes órdenes y sus teclas correspondientes.

Lo básico: status, add y commit

Empezamos a usar Magit en un repositorio existente diciéndole que nos muestre el estado del mismo en una de sus ventanitas con la siguiente orden:

M-x magit-status RET
magitStatus

La ventanita de estado

La documentación nos aconseja asignarle la combinación de teclas C-x g a este comando ya que lo usaremos a menudo. Esto ya lo hemos hecho otras veces, no hace falta más que añadir una línea mágica al archivo de configuración:

(global-set-key (kbd "C-x g") 'magit-status)

Si no empezamos desde un repo existente, podemos iniciar uno con M-x magit-init o clonarlo con M-x magit-clone, que nos pedirá un nombre y una URL.

La ventanita de estado nos lista todos los archivos del repo, categorizados como Unstaged, Staged y Modified. Podemos movernos por la ventanita y decirle a Magit que haga el seguimiento a archivos o a trocitos de archivos, que haga un commit o que envíe los cambios a un repositorio remoto solo dando a una tecla.

Posicionándonos sobre el nombre de un archivo sin seguimiento o uno modificado y pulsando s (stage) lo añadiremos a los archivos a vigilar. Si nos posicionamos en el título y le damos a la s, añadiremos todos los de la sección. También podemos ignorar archivos con u (unstage).

Cuando estemos satisfechos de los añadido, le damos a la c para que se abran las opciones del commit y le vamos siguiendo el juego: pulsamos c para un commit normal, escribimos el mensaje y hacemos C-c C-c para decirle que hemos acabado. Antes os decía que las ventanitas tenían dos partes, la de las opciones y la de los comandos, los comandos se eligen dándole a la tecla correspondiente y las opciones superiores se activan posicionándose en la línea y pulsando RET, son los flags con los que Magit llamará al comando de git en cuestión.

Una de las cosas que más me gusta de Magit es que la información de las ventanitas se divide en secciones que se comportan como las de mi adorado Org y, por lo tanto, se expanden una vez con TAB y del todo con C-TAB.

Ver diferencias: diff

La ventanita de estado ya nos muestra los cambios al expandir el archivo con TAB, pero si queremos hacer más cosas tenemos la ventanita de los diffs, que contra todo pronóstico abrimos con d cuando estamos en la ventana de estado.

magitDiff

La ventanita de los diff

Sobre las ramas: branch, stash, checkout y merge

Las ramas en sí se tratan en la ventanita de las ramas que se abre con b y gestiona la creación y la destrucción de ramas así como saltar de una a otra con checkout.

Las fusiones de ramas, en cambio se tratan en la ventanita de merge que se abre con m y los stash en otra ventanita específica a la que llamamos con la z.

Manejar remotos: configuración, push y pull

El tema de los remotos tiene su miga por los términos que se utilizan. Yo como de git sé bastante poco, voy a contar el par de cosas que uso yo y os dejo unos enlaces para que leáis el manual.

Los remotos se gestionan con la ventanita que aparece al darle a la M, ahí se puede añadir un remoto, quitarlo o cambiarle el nombre. Cuando ya lo tengamos configurado, podemos hacer fetch o pull con f y F respectivamente, cada cual con su ventana de opciones correspondiente. Luego con P abrimos la ventanita de hacer push y mandamos los cambios a la rama remota que nos parezca.

En Windows, como suele ser habitual, el tema de pushear funciona distinto. Si estáis en ese caso el manual es vuestro amigo.

Otras cosicas

Un tema interesante para no malgastar recursos es desactivar VC, el modo de Emacs para el control de versiones. Nos dicen en la docu que para ello añadamos esta línea al archivo de configuración:

(setq vc-handled-backends nil)

Conclusión

Así como resumen os diré que me ha gustado Magit, es sencillo e intuitivo y a pesar de que me encante usar git desde la terminal y liarla petarda porque no me acuerdo de los comandos, usaré Magit siempre que edite cosas bajo control de versiones en Emacs.

¡Recordad! Para usar Magit solo hace falta abrir la ventanita de estado (M-x magit-status) y luego darle a teclas diversas. No nos exige además mucha memoria, solo con acordarnos de que la h nos abre la ventanita de ventanitas es suficiente. ¡Ah! Salir de las ventanitas es tan fácil como darle a la q.

Ya me contaréis qué tal.

magitAyuda

La ventanita de ayuda

Referencias

El manual de Magit

Getting started in Magit

FAQ de Magit


Sonando:


Anuncios

5 pensamientos en “Lo que he aprendido: magit

  1. Pingback: En qué ando: marzo | Onda Hostil

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

w

Conectando a %s