Gitkraken -> Git en modo Gui interactiva

GitKraken – Instalación + tutorial + Cuenta de GitHub

 

gitkraken-gitguiBien lo primero será descargar e instalar GitKraken. Es bastante sencillo pero la instalación en linux me ha dado problemas de dependencias, nada que un linuxero habitual no pueda resolver. Aquí debajo te dejo el link de descarga de la página oficial (recordemos que GitKraKen es MULTIPLATAFORMA) y también te dejo un sitio donde explican como resolver problemas de dependencias en casos que los tengas. Pero nada que dos simples comandos no resuelvan!

Link de descarga: GitKraken

Link en caso de conflictos de dependencia de paquetes en linux: Problemas de dependencias

Para instalar en linux descargamos el paquete e instalamos como lo hacemos habitualmente según tu distribución. En mi caso un simple «sudo dpkg -i gitkraken-amd64.deb»

En mi caso tuve problemas con algunos paquetes pero bastó con un «sudo dpkg –configure -a»

También para poder utilizar GitKraken es mejor que tengamos una cuenta de GitHub, en este caso solo seguiremos trabajando con nuestro proyecto local, pero más adelante vamos a subirlo remotamente para conocer mejor como funciona GitHub. Así que a ello, ve a GitHub y create una cuenta, luego la ingresas en GitKraken para que podamos seguir con nuestro proyecto 😉

Al abrir Gitkraken luego de ingresar nuestra cuenta nos encontraremos algo así:

gitkraken - git - gui

 

Es momento de abrir nuestro proyecto en local, para ello vamos a «Open a Repo» y buscamos nuestra carpeta de trabajo. Simplemente damos en aceptar y podremos ver nuestro proyecto completo, ramas, commits, etc. Ahora voy a mostrarte una guía rápida de cada parte del programa:

GitKraken Guía

En la parte izquierda:

  • Recuadro rojo: Allí veremos el nombre del repositorio y si estamos trabajando sobre uno local o remoto. También Gitkraken trabaja con pestaña, tal como los IDES o Navegadores, significa que puedes trabajar en varios proyectos a la vez. Al lado donde dice «branch» y en este caso se encuentra en HEAD podremos mover el «cabezal o apuntador HEAD» a determinada rama.

 

  • branch options gitRecuadro azul: Indica las ramas de nuestro proyecto. Allí podremos ocultarlas del gráfico del centro, normalmente nos será útil si trabajamos con muchas ramas y no queremos distraernos. También si hacemos clic derecho en alguna rama nos saldrán una serie de opciones útiles, como crear una rama a partir de la rama en que hicimos clic, revertir el último commit, hacer un reset HEAD (eliminar último commit,), editar el mensaje de algún commit en esa rama, modificar el nombre de la rama, eliminarla, etc. Aunque esté en ingles es bastante fácil!

 

 

 

 

 

 

  • Git KraKen RamasEn el centro de GitKraken vamos a ver las ramas de nuestro proyecto, los commits y también el autor o editor de cada uno. Podremos navegar a través de ellos solo haciendo doble clic sobre el commit que nos interesa. En este caso como estamos trabajando sobre un proyecto remoto solo vamos a vernos a nosotros mismos, pero en caso de clonar un proyecto remoto veremos todas las personas que están trabajando sobre dicho proyecto. También en este caso parece que no se ven las ramas, pero fíjate que todo lo que tienes que hacer es arrastrar una linea del medio con tu mouse para que entonces muestre una vista más amplia de las ramas del proyecto.
  • En la zona del centro en la parte superior veremos algunos botones que nos presentan opciones que aun no vamos a utilizar pero quizás más adelante si. De todas formas lo explicaremos cuando sea necesario.
  • En la parte derecha tendremos un panel donde podemos ver el Commit sobre el que estamos posicionados y también modificar el mensaje del commit, ver su «hash», el autor y la hora de creación, además también nos permitirá acceder a un interesante editor de código desde donde podremos continuar editando nuestro archivo, y también podremos ver un «historial» de los cambios tanto de la aplicación como de nuestro proyecto pulsando debajo en «Activity logs».

Gitkraken editor

Interface GitKraken

 

¿Y como trabaja GitKraken?

Cambios en GitKraken

Tu puedes trabajar con el editor de GitKraken cuando lo desees, o bien trabajar normalmente con tu clásico IDE. Finalmente tras realizar una modificación al archivo, en este panel de la derecha que te acabo de mostrar te aparecerá una alerta de que el archivo ha cambiado. Te estará avisando que un archivo ha cambiado en tu directorio de trabajo y te brinda la posibilidad de ver los cambios!. Al hacer clic en «View Change» podrás ver en el mismo panel una serie de opciones.

Allí al cliquear sobre el archivo (app.py en este caso) será como si hicieras un «git diff» pero verás los cambios nuevos en el editor de GitKraken. También te brinda las opciones de Stagin All, que significa lo mismo que un «git add .» osea «confirmar todos los cambios» o bien te ofrece un «Stage File/Changes to Commit» que sería lo mismo que confirmar los cambios al Stagin Area y crear un Commit inmediatamente. Aquí aún no confirme nada pero te voy mostrando:

Cambios en GitKraken Stagin AreaCambios en GitKraken Stagin Area

 

Y esto se presenta luego de cliquear «app.py» para ver sus cambios, tal como un «git diff»:

 

gitkraken 2 cambios en app.py

 

Si luego de editar (debes cambiar a edit mode) doy en «Stage All changes» simplemente estoy actualizando los cambios al Stagin Área como un «git add». Luego de terminar de editar y  «Stagear» (mi lunfardo criollo) podemos crear un commit. Fíjate que hasta nos ofrece una vista de split de los cambios, un historial, podemos re-establecerlos antes del crear el commit, etc. Nada que tu investigando, tocando y desarmando como «niño» no puedas aprender fácilmente:

Gitkraken SplitView

Podemos crear un commit fácilmente una vez terminamos de editar, pero fíjate que anteriormente nos avisaba que nuestro HEAD se encontraba en DETACHED MODE. Para ello bastará con pararnos en la rama (panel izquierdo, doble clic). O bien en la esquina superior derecha luego del nombre del proyecto donde dice branch debemos pararnos en la rama en la cual deseamos hacer el commit!. y luego en último commit (clic derecho > «Checkout this commit») y a partir de allí crear uno nuevo:

 

 

En este caso me he parado en el ultimo commit sobre la rama «rama1» y he creado otro commit. Luego de crearlo voy a cambiar el mensaje:

Nuevo commit sobre rama1

 

Su uso es muy sencillo y nos va a agilizar mucho el trabajo de consola, además permitirá que no tengamos conflictos con tantas ramas.

Aquí te dejo un Gif cutre creando un commit desde cero!

 

 

Ramificación y unificación en GitKraken (Branching and Merging)

Es momento de crear algunas ramas y experimentar a unificar nuestros cambios. Para ello en este caso vamos a hacerlo usando GitKraken. Vamos a crear una rama nueva y a unificar las anteriores para tener una primera versión final sobre master.

Para ello en este caso voy a crear una rama llamada «Fix» donde suponiendo tengamos que reparar un bug o error en nuestro código y deseamos dejar constancia de ello separando en una rama aparte. Finalmente luego de simular solucionar este «bug» vamos a volver a unificar la rama «Fix» en la «rama1» y finalmente unificaremos la rama1 en «master» para terminar nuestra primera versión del programa. (Un programa que no hace nada, pero obviamente es solo de ejemplo.). Para ello te dejo un gif..

que culiau-Puedes verlo en pantalla completa, dando clic en la esquina inferior derecha.

  • Y si!. Si así no se ve nada cabrón que calidad de mierda!

Espero poder animarme a subir vídeos tutoriales completos pronto (aún a la espera de un buen micro). Mientras si lo deseas puedes suscribirte a mi canal: CodeNight

Finalmente vamos a unificar «rama1» con todos sus commits tal como veníamos editando a la rama «master» para «simuladamente» lanzar nuestra primera versión. Pero fíjate que nos encontramos con un problema de fácil solución en este caso.

Y nose si podrás dilucidar fácilmente el porque se produce este problema. Pero fíjate que teníamos un commit sobre la rama «master» con el mensaje «Agregamos una intro«, básicamente un print cutre.. Pero claro, ese commit en la rama master ocupa un espacio de lineas en el archivo que luego al querer unificar la «rama1» que contiene muchos cambios y otras lineas a la rama «master«, Git se encuentra con que esas lineas están ocupadas con otro código y ello genera un conflicto. ¿Por que como saber cual de los dos es el correcto o el que tu quieres conservar?. Pues eso solo lo sabrías tu!. Entonces GitKraken te muestra las diferencias entre ambas versiones del archivo y debajo una versión final donde deberás especificar que lineas irán y en que orden, para una salida!

Fusionar ramas evitar conflictos

Otras formas de evitar este conflicto eran:

  • Haber creado la rama rama1 a partir de ese commit.
  • Haber fusionado rama1 a master en ese commit y luego creado otra rama.
  • Haberlo creado sobre rama1 en vez de master.

Por ello es mejor siempre trabajar en ramas aparte de Master y solo utilizarla para alojar los commits con las versiones finales.

 

Llegamos al final (por ahora)

Y solo porque me canse de escribir sobre lo mismo.. 😛

Has aprendido:

  • Qué es Git y para que te va a servir en tu vida de desarrollador.
  • Has aprendido los comandos básicos y su utilidad.
  • A manejar Git desde la consola. Para: Crear Commits y ramas, borrar commits o revertirlos, ver las ramas y commits en modo gráfico, entre otras cosas.
  • Has aprendido a usar un entorno Gui de Git llamado GitKraken. A crear ramas y commits, a editar archivos desde el mismo, a crear y fusionar ramas, entre otras cosas.
  • A leer una guía completa sin distracciones (¿tal vez?)

Pronto añadiré en este mismo post información sobre Git Flow con GitKraken y estará disponible la segunda parte donde trabajaremos con un repositorio remoto de Pythones y aprenderás a crear el tuyo propio entre otras cosas..

No olvides que hago esta guía con las mejores intenciones, si notas algún error ya sea en la explicación o los conceptos no dudes en hacérmelo saber desde la página de contacto. Estaré muy agradecido

 


Compartir es agradecer! :)

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.