Cómo manejar Git como un experto desde Android Studio

En nuestros días no nos imaginamos el desarrollo de un proyecto de software que no incluya un control de versiones, entre las distintas opciónes para un VCS, Git, indudablemente, se ha posicionado propiciamente por delante de otros grandes como Subversion y Mercurial.

La curva de aprendizaje que este género de herramientas acostumbra a implicar acostumbra a ser bastante alta, puesto que la enorme pluralidad de peculiaridades y opciones que incluyen lo transforman en recursos complejos al unísono de muy potentes.

Tanto para los menos experimentados, para los especialistas manejando un VCS, es esencial tener buenas herramientas o bien un ambiente suficientemente configurado para tratar con exactamente el mismo de forma veloz y eficaz.

Este artículo acerca, a usuarios de ambientes de desarrollo de la familia de JetBrains, diferentes curiosidades y ejemplos de como manejar ciertas herramientas para el manejo de un control de versiones, consiguiendo una mayor cohesión entre el desarrollo y el versionado del mismo.

Comparaciones

Entre otros muchos beneficios que conseguimos usando un control de versiones, está el de poder equiparar ficheros con sus diferentes estados a lo largo del tiempo. Para esto, JetBrains dispone, desde mi punto de vista, de una de las herramientas de diff / merge más potentes y también intuitivas a usar en el momento de cotejar cambios.

Un buen empleo de estas herramientas deja agilizar bastante el trabajo del cada día, en tanto que estas comparaciones son usuales conforme se altera el código (incorporar, borrar y mudar) o bien se examina. Además de esto, estas modificaciones acostumbran a ser complejas de representar, con lo que no es sencillo hallar una buena herramienta que exprese bien los cambios.

IntelliJ como herramienta de diff y merge

Desde la versión dos mil dieciseis de IntelliJ, JetBrains ha incluido una alternativa bien interesante llamada 'Create command line launcher', la cuál Android Studio ha heredado en su actualización a la versíon veintidos.

Esta nueva opción, deja usar el diff / merge de IntelliJ o bien Android Studio de forma externa, de tal manera que las podríamos emplear tanto desde línea de comandos como desde nuestro usuario de VCS preferido.

De este modo, entre otras muchas situaciones interesantes podríamos solucionar un enfrentamiento o bien equiparar múltiples ficheros usando estas herramientas externas. Como opción alternativa, herramientas como Kaleidoscope o bien Filemerge asimismo están orientadas al equiparado ficheros.

La enorme mayoría de clientes del servicio de control de versiones acostumbran a permitir usar herramientas diff / merge de forma externa, si eres usuario de algún ambiente de JetBrains, no tienes escusa para no usarlas.

El cliente del servicio externo que suelo emplear es SourceTree de Atlassian. Para configurar el diff / merge de Android Studio en este cliente del servicio solo es preciso configurar la senda del binario creado por IDE (por defecto /user/local/bin/studio) en la sección de ajustes de SourceTree: Settings/Diff, escogiendo la herramienta externa como other al lado de los factores apropiados.

Equiparar el fichero actual con su versión una rama particularmente

IntelliJ y Android Studio dejan cotejar el fichero abierto en el editor con su respectiva versión en otra rama. Esto puede ser interesante en múltiples situaciones como revisiones de código o bien pull requests, o bien contrastar si un enfrentamiento se ha solucionado adecuadamente.

Esta alternativa, libre en los menús o bien buscando de manera directa ( A ) por Compare with branch, deja escoger cualquier rama existente en el control de versiones, tanto local como recóndita para equiparar los cambios con la herramienta diff.

Cotejar un commit precedente

La opción Compare with… nos dejará a través de un pop-up escoger de manera rápida, un commit que hayamos efectuado en algún instante precedente para equiparar el fichero que tengamos abierto.

Si en cambio, deseamos enseñar la historia de commits por donde el fichero que tengamos abierto ha ido alterado, podemos emplear la opción Espectáculo history…, la cuál usará un panel fijo en la parte inferior del IDE.

Manejando los cambios

De forma frecuente, tras editar múltiples ficheros, puede ser útil revisar qué cambios han sido efectuados desde el último commit, la opción local changes va a poner el foco en un panel inferior mostrando todos y cada uno de los ficheros editados.

Sin leventar las manos del teclado vamos a poder efectuar acciones como:

Elegir arhivo(s) y hacer commit – ( K )

Enseñar diff con las modificaciones en comparación con último commit – ** D **

Restaurar los cambios del archivo de forma rápida con la opción revert – ** Z **

Esta alternativa, además de esto, puede ser usada en otros contextos aparte del log. Con cualquier fichero podemos usar la opción revert para restaurar los cambios con respecto a la versión existente en el control de versiones.

Nota: Por norma general, los cuadros de diálogo pueden cerrarse vía tab entrar

Mostrar el log del control de versiones

A pesar de que, personalmente, me agradan más clientes del servicio como SourceTree, el cuál tiene una forma clara y también intuitiva de enseñar el log, Android Studio y también IntelliJ asimismo incorporan esta característica, podemos acceder con la opción Espectáculo VCS log.

Como ventajas, al estar integrado en el IDE aprovecha todas y cada una de las capacidades de navegación que tiene IntelliJ, por ende, vamos a poder interaccionar con el log simple, rápida y visualmente a través de el teclado.

Si escogemos cierto commit y con find action ( A ) empezamos a redactar la opción deseada, el ambiente interaccionará en el contexto donde esté el commit, de tal forma que podríamos hacer reset, checkout y cherrypick entre otros muchos de forma veloz y cómoda.

Además de esto, podemos abrir comparaciones con la herramienta diff de forma sencilla posicionandonos en un commit y pulsando ( D ).

VCS operations popup ( V )

De manera sencilla podemos enseñar un popup con las opciones más usadas trabajando con un control de versiones: commit, branches, operaciones de stash, etcétera

Realizando commits

Uno de los requisitos clave en el momento de emplear apropiadamente un control de versiones es efectuar commits con poca frecuencia y de la forma más atómica posible. Se estima que un commit es atómico cuando las modificaciones contenidas en él hacen referencia a un solo cambio, además de esto, un commit debería tener un título claro, sucinto y gráfico.

No obstante, puede ser aburrido, en ambientes donde se utilize un cliente del servicio de terceros o bien una línea de comandos sin una enorme personalización, efectuar commits de forma veloz.

Commit veloz – ( K ) (tab entrar)

Usando el usuario VCS integrado de Android Studio / IntelliJ, y seguramente alguno más perteneciente a la familia de JetBrains, con el hatajo ( K ) ( entrar) vamos a poder tener un commit listo en cinco segundos.

Además de esto, podemos activar diferentes opciones como inspeccionar el código ya antes de efectuar el commit, organizar imports o bien elegir los cambios a incluir en el commit en función de los ficheros cambiados.

Integración con GitHub

IntelliJ, Android Studio y probablemente, otros ambientes de la famlia de JetBrains ofrecen una integración con GitHub, esto brinda al IDE de determinadas peculiaridades interesantes que pueden ser de bastante utilidad si trabajamos cotidianamente con esta plataforma.

Conseguir enlaces directos al repositorio

Así sea en el explorador de ficheros del proyecto, o editando un fichero, la acción Open on GitHub va a abrir tu navegador con la versión recóndita de tal fichero.

Además de esto, si lanzamos esta alternativa con un texto elegido en el editor, este texto asimismo va a salir destacado en el navegador, realmente útil para compartir entre miembros del equipo en el momento de enseñar algo.

Crear un Pull Request

La opción de Create Pull Request deja crear Pull Requests en GitHub usando como rama base la que tengamos configurada como primordial en el repositorio, y como aspirante al merge la que estemos trabajando en el IDE.

Crear un Gist

Análogamente, podemos crear Gists en GitHub tanto privados como anónimos, con la opción Create Gist.

Referencias

How to write a commit message – Chris Beams.

Version Control Help – IntelliJ IDEA

Saúl Molinero es una persona entusiasta con pasión por el desarrollo móvil. Hoy en día, trabaja como desarrollador android en Popsy Buy