martes, 19 de diciembre de 2017

GIT con GitKraken y Google Cloud

GIT

Git es un software de control de versiones diseñado por Linus Torvalds, pensando en la eficiencia y la confiabilidad del mantenimiento de versiones de aplicaciones cuando éstas tienen un gran número de archivos de código fuente. Al principio, Git se pensó como un motor de bajo nivel sobre el cual otros pudieran escribir la interfaz de usuario o front end como Cogito o StGIT. 3​ Sin embargo, Git se ha convertido desde entonces en un sistema de control de versiones con funcionalidad plena. 4​ Hay algunos proyectos de mucha relevancia que ya usan Git, en particular, el grupo de programación del núcleo Linux

CARACTERÍSTICAS

El diseño de Git se basó en BitKeeper y en Monotone.

El diseño de Git resulta de la experiencia del diseñador de Linux, Linus Torvalds, manteniendo una enorme cantidad de código distribuida y gestionada por mucha gente, que incide en numerosos detalles de rendimiento, y de la necesidad de rapidez en una primera implementación.

Entre las características más relevantes se encuentran:

Ø  Fuerte apoyo al desarrollo no lineal, por ende, rapidez en la gestión de ramas y mezclado de diferentes versiones. Git incluye herramientas específicas para navegar y visualizar un historial de desarrollo no lineal. Una presunción fundamental en Git es que un cambio será fusionado mucho más frecuentemente de lo que se escribe originalmente, conforme se pasa entre varios programadores que lo revisan.
Ø  Gestión distribuida. Al igual que Darcs, BitKeeper, Mercurial, SVK, Bazaar y Monotone, Git le da a cada programador una copia local del historial del desarrollo entero, y los cambios se propagan entre los repositorios locales. Los cambios se importan como ramas adicionales y pueden ser fusionados en la misma manera que se hace con la rama local.
Ø  Los almacenes de información pueden publicarse por HTTP, FTP, rsync o mediante un protocolo nativo, ya sea a través de una conexión TCP/IP simple o a través de cifrado SSH. Git también puede emular servidores CVS, lo que habilita el uso de clientes CVS pre-existentes y módulos IDE para CVS pre-existentes en el acceso de repositorios Git.
Ø  Los repositorios Subversion y svk se pueden usar directamente con git-svn.
Ø  Gestión eficiente de proyectos grandes, dada la rapidez de gestión de diferencias entre archivos, entre otras mejoras de optimización de velocidad de ejecución.
Ø  Todas las versiones previas a un cambio determinado, implican la notificación de un cambio posterior en cualquiera de ellas a ese cambio (denominado autenticación criptográfica de historial). Esto existía en Monotone.
Ø  Resulta algo más caro trabajar con ficheros concretos frente a proyectos, eso diferencia el trabajo frente a CVS, que trabaja con base en cambios de fichero, pero mejora el trabajo con afectaciones de código que concurren en operaciones similares en varios archivos.
Ø  Los renombrados se trabajan basándose en similitudes entre ficheros, aparte de nombres de ficheros, pero no se hacen marcas explícitas de cambios de nombre con base en supuestos nombres únicos de nodos de sistema de ficheros, lo que evita posibles, y posiblemente desastrosas, coincidencias de ficheros diferentes en un único nombre.
Ø  Realmacenamiento periódico en paquetes (ficheros). Esto es relativamente eficiente para escritura de cambios y relativamente ineficiente para lectura si el reempaquetado (con base en diferencias) no ocurre cada cierto tiempo.

ÓRDENES BÁSICAS

GIT FETCH:

Descarga los cambios realizados en el repositorio remoto.

GIT MERGE <NOMBRE_RAMA>:

Impacta en la rama en la que te encuentras parado, los cambios realizados en la rama “nombre_rama”.

GIT PULL:

Unifica los comandos fetch y merge en un único comando.

GIT COMMIT -AM "<MENSAJE>":

Confirma los cambios realizados. El “mensaje” generalmente se usa para asociar al commit una breve descripción de los cambios realizados.

GIT PUSH ORIGIN <NOMBRE_RAMA>:

Sube la rama “nombre_rama” al servidor remoto.

GIT STATUS:

Muestra el estado actual de la rama, como los cambios que hay sin commitear.

GIT ADD <NOMBRE_ARCHIVO>:

Comienza a trackear el archivo “nombre_archivo”.

GIT CHECKOUT -B <NOMBRE_RAMA_NUEVA>:

Crea una rama a partir de la que te encuentres parado con el nombre “nombre_rama_nueva”, y luego salta sobre la rama nueva, por lo que quedas parado en esta última.

GIT CHECKOUT -T ORIGIN/<NOMBRE_RAMA>:

Si existe una rama remota de nombre “nombre_rama”, al ejecutar este comando se crea una rama local con el nombre “nombre_rama” para hacer un seguimiento de la rama remota con el mismo nombre.

GIT BRANCH:

Lista todas las ramas locales.

GIT BRANCH -A:

Lista todas las ramas locales y remotas.

GIT BRANCH -D <NOMBRE_RAMA>:

Elimina la rama local con el nombre “nombre_rama”.

GIT PUSH ORIGIN <NOMBRE_RAMA>:

Commitea los cambios desde el branch local origin al branch “nombre_rama”.

GIT REMOTE PRUNE ORIGIN:

Actualiza tu repositorio remoto en caso que algún otro desarrollador haya eliminado alguna rama remota.

GIT RESET --HARD HEAD:

Elimina los cambios realizados que aún no se hayan hecho commit.

GIT REVERT <HASH_COMMIT>:

Revierte el commit realizado, identificado por el “hash_commit”.

GITKRAKEN

GitKraken es una potente y elegante interfaz gráfica multiplataforma para Git desarrollada con Electron. De forma muy sencilla podemos llevar el completo seguimiento de nuestros repositorios, ver ramas, tags, crear nuevos, todo el historial de nuestro trabajo, commits etcétera.
Si aún no conoces Git, es un sistema para llevar a cabo el control de versiones de tus desarrollos, imagina que tienes que desarrollar una nueva aplicación y quieres conocer el completo proceso de la misma, marcar puntos importantes y poder trabajar con varios compañeros en un mismo proyecto, ahí entra Git, aquí tienes una guía rápida sobre Git.
GitKraken es multiplataforma, por lo tanto, podemos utilizarlo en windows, linux y mac os.

Este sistema para el control de versiones con git tienes dos planes, uno gratuito para siempre y otro de pago el cual ofrece mucha más funcionalidad, y no es excesivamente caro si te es de ayuda, un plan anual de 5$ al mes, 60$ al año por usuario.

¿PORQUE GITKRAKEN?

Es un interfaz muy bonito y fácil de usar y de entender es una forma interesante de usar Git ya que Git está diseñado para usarlo en terminal lo cual nunca me gusto.
Normalmente vemos tutoriales de Git o de GitKraken de como clonar o administrar un repositorio en GitHub o Gitbucket esta vez vamos a ver como lo configuramos y administramos, pero desde un repositorio privado y fuera de los proveedores comunes, en este caso les voy a mostrar cómo se crea y se administra desde un repositorio de google cloud, que es donde tengo mi servidor y mi repositorio propio.

¿Qué necesitamos o que vamos a ocupar?

Vamos ocupar varias cosas para empezar voy a dejar un link de los sitios oficiales por si quieres descargar la versión más nueva y actualizada, como una opción más. Recordemos que esto funciona para cualquier sistema operativo en mi caso se utiliza en computadoras Apple y computadoras Windows con el mismo proyecto
1.       Un repositorio (en cualquier lugar o proveedor en mi caso va a ser google cloud pero puede ser cualquier otro).

2.       Git el instalador de Git

3.       GitKraken el instalador de GitKraken

INTALACIÓN O PREPARACIÓN

Para esta etapa se explica cómo se instala y prepara todo para el proyecto como lo he mencionado antes se puede con cualquier otro proveedor yo lo voy a hacer con google cloud, entonces si es otro proveedor nada más busca la misma opción, pero un tu proveedor.

PASO 1

Vamos a abrir o crear un repositorio de código fuente. Para ello ingresamos en la cuenta de google cloud o del proveedor si no tienes uno debes crear la cuenta.

Una vez que ingresamos nuestra cuenta nos envía a la ventana de inicio ahí le damos clic en CONSOLA

 Cuando le damos consola nos envía al inicio del servidor de ahí vamos al menú y buscamos la opción Repositorios de Código fuente


Una vez ingresado a nuestra opción nos va a enviar a los repositorios existentes o nos envía una ventana de empezar le damos clic al botón.


Luego seleccionamos un nombre de del repositorio que deseamos crear


Una vez creado el nombre nos abre 3 opciones podemos utilizar cualquiera de las 3 pero en este caso vamos a Enviar código desde un repositorio de Git local a tu repositorio de Cloud.
Seleccionamos SDK de Google Cloud y seleccionamos Clonar el repositorio de Cloud en un repositorio de Git local


Una vez ahí seleccionamos Generar y almacenar tus credenciales de Git 


Ahora debemos ingresar nuestras credenciales de la cuenta donde se encuentra el repositorio 


 Ingresamos la cuenta y la contraseña de la cuenta


Le damos permiso a google para crear las llaves necesarias


Una vez ingresado nos genera las credenciales para poder crear el repositorio en mi computadora 



Estos dos parámetros tanto los nombres de usuario son súper importantes debes guardarlos bien yo normalmente lo pego en un txt o documento de texto.
Con eso estamos listos para clonar nuestro repositorio.

PASO 2

Vamos a instalar Git en la computadora que queremos tener una copia del repositorio el Git recordemos no importa el sistema operativo esta parte es muy fácil empecemos 


En mi caso voy a instalar la versión 2.15.0 de 64 bits podemos instalar la versión actual sin importar la que sea ejecutamos como administrador el instalador.
En este paso solo le damos siguiente, siguiente, siguiente hasta instalar.










PASO 3

En este paso vamos a instalar el GitKraken vamos al instalador y ejecutamos como administrador
Git



Una vez instalado vamos a clonar nuestro repositorio  para eso le damos clic en el icono de la carpeta





Se nos abre esta ventana donde seleccionamos Clone


Ahora pegamos nuestros creenciales los que guardamos en el documento txt la primera es donde queremos pegar la carpeta del repositorio yo lo voy a hacer en el escritorio creo una carpeta nueva y ahí lo clono

Y en la segunda opcion colocamos el link de nuestro respositorio.


Para saber la ruta o URL del repositorio vamos a nuestra consola de google cloud y la copiamos

Para ello nos vamos a repositorios. 



Una vez copiado el link y seleccionada la carpeta clonamos


Una vez termina de cargar le damos Open Now


Listo nuestro repositorio ha sido creado 



Arquitectura del Big Data y Cloud Computing en Azure

Conversatorio: "Arquitectura del Big Data y Cloud Computing en Azure", tenemos como invitado a Victor Vargas Arce y los panelistas...