viernes, 19 de agosto de 2016

GENERAR CLAVE PÚBLICA SSH EN LINUX

GENERAR CLAVE SSH EN LINUX 


Realizando trabajos con GIT se necesitaba crear una clave SSH para poder subir los commits directo al repositorio sin solicitar clave en Bitbucket. Investigando se resolvió y les presento el siguiente post. 

Primero debemos descargar ssh por consola utilizando el comando (aptitude install ssh). Si lo tenemos instalado obviamos este paso.

Luego en la consola colocamos el siguiente comando
ssh-keygen -t rsa -b 4096 -C "tu_email@example.com"

Nos aparece lo siguiente.
Enter passphrase (empty for no passphrase): 
### Aquí nos esta pidiendo una clave, tenemos la opción 
de colocar una clave o sí presionamos ENTER pasamos sin clave. 
(Recomendado sin clave)
Enter same passphrase again: 
### Aquí nos solicita la confirmación de la misma, 
sino se le coloca clave presionamos ENTER 

Nos aparece el siguiente mensaje informando que creo 
la clave y los archivos correctamente
Your identification has been saved in /home/usuario/.ssh/id_rsa.
Your public key has been saved in /home/usuario/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:jZGSPdhIBEm2xzJtTOdo4vMOMppZ2ZOlkc8ZeE2iAd8 tu_email@example.com
The key's randomart image is:
+---[RSA 4096]----+
| ..+++ . |
| +.O X . |
| B E O |
| . % = = |
| B + S . |
| o @ o |
| = * = |
| = o + |
|+ . |
+----[SHA256]-----+

Este archivo se guarda la siguiente ruta: /home/usuario/.ssh/id_rsa.pub.

Una vez creado este paso ejecutamos el siguiente comando para validar que el agente o la clave esta autorizada.
eval "$(ssh-agent -s)"

Posteriormente colocamos
git config --global user.email "tu_email@example.com"
Luego
git config --global user.name "Tu Nombre"

Listo luego de esto nos vamos a nuestro repositorio en la nube, en mi caso estoy utilizando Bitbucket nos vamos a los Ajustes de Bitbucket si la versión esta en ingles es Bitbuckets Settings
de allí nos ubicamos en la parte de Seguridad (Securiry) damos click en SSH Keys

Buscamos nuestro archivo de clave publica ubicada en la ruta /home/usuario/.ssh/id_rsa.pub.
Lo abrimos copiamos todo el código que esta en ese archivo. 
NOTA: Este archivo esta oculto, presionando Ctrl+h lo podremos observar

Regresamos a Bitbutcket y le damos Add key allí nos solicita un nombre: El de su computador o el que usted quiera y en el recuadro *Key pegamos el código antes copiado. Click en Add Key (Guardar)


Listo ya podemos utilizar y comenzar a trabajar con nuestra clave pública y la nube

viernes, 29 de abril de 2016

Crear repositorio en Bitbucket y flujo para realizar trabajo en equipo con comandos Git

Pasos para Crear repositorio en Bitbucket y flujo para realizar trabajo en equipo con comandos Git

1. Pasos del Administrador del Sistema


1.1. Se debe tener creada una cuenta en Bitbucket   

1.2. Se debe abrir la pestaña de repositorio y dar click en crear repositorio  (create repository)






























1.3. Nos muestra una ventana le indicamos un nombre a este repositorio y click en cerar repositorio   





1.4. Al darle crear repositorio nos aparece así.






1.5. Debemos crear un archivo, equipo.txt o readme.md (se sugiere que este archivo sea quien contiene los participantes del proyecto o un archivo el cual contenga información del proyecto) para poder así comenzar a realizar las invitaciones para el equipo participante (los que poseen la versión gratis solo podrá tener máximo 5 participantes. Se presiona send invitation







1.5.1 Debemos realizar lo siguiente para poder tener un clon de nuestro repositorio en la computadora, posicionarnos desde la consola en la ruta donde queremos obtener la carpeta del repositorio
git init 
git clone git@bitbucket.org:VictorDavila10/repo_manual.git
NOTA: Este paso es por consola,  una vez le de enter al comando anterior se descargara una carpeta con el nombre del repositorio y dentro de ella un .git la cual será una carpeta oculta.


1.6. Una vez presione sobre send invitation saldrá una imagen como la siguiente, donde buscara a el o los usuario(s) que van a participar en el proyecto. Tenga en cuenta los permisos que usted le dará a la persona invitada, en read el usuario actualizara el repositorio con sus cambios solo cuando el administrador los acepte (recomendado) el write permitira subir cambios libre y el admin puede tener el control del repositorio general. De igual manera es necesario que la persona que usted va a invitar tenga cuenta en Bitbucket 

















1.7. Ya una vez los usuarios usted los haya agregado y les haya llegado la respectiva invitación deben comenzar a realizar el siguiente procedimiento.

NOTA: El administrador finaliza mas adelante en la explicación



2. Pasos a nivel de usuario invitado para trabajar en el repositorio



2.1. Cada usuario debe realizar un fork de el repositorio que se le envío, cambiarle el nombre o si gusta dejarle el mismo nombre


















2.2. Una vez realizado el fork tendrá los dos repositorios creados uno con tu usuario y el otro con el usuario sobre que se le realizo el fork (con los nombres respectivos)



2.3. Seguidamente se realiza por la consola un git clone con la ruta tu repositorio 
git clone git@bitbucket.org:Jpernia/Repo_manual.git



2.4. Se procede a realizar un git remote (Este comando muestra qué rama se envía automáticamente cuando ejecutas git push en determinadas ramas. También te muestra qué ramas remotas no tienes todavía, qué ramas remotas tienes y han sido eliminadas del servidor, y múltiples ramas que serán unidas automáticamente cuando ejecutes git pull)

git remote add nombre_rama  git@bitbucket.org:VictorDavila10/repo_manual.git 
## (git@bitbucket.org:VictorDavila10/repo_manual.git) Esta dirección es la del usuario que creo el repositorio y es donde usted va a subir los cambios



2.5. Realizan el comando git remote -v podemos ver una lista de ramas y las direcciones donde vamos aputar nuestros pull, push, commit, etc



2.6. Ya descargado en tu computador el repositorio y ya teniendo su rama remota y ramas se comienza a trabajar individualmente y se empieza a realizar en consola los siguientes comandos



2.7 Una vez se comience a trabajar en el repositorio, se creen archivos carpetas correspondiente por cada uno y se comience a subir información tanto para tu repositorio como para el repositorio del lider del proyecto iniciamos realizando lo siguiente:

     a) git status (este comando lo utilizamos para ver los archivos o carpetas que hemos creado o modificado dentro del repositorio, nos daremos cuenta ya que todos estos datos que nos muestra estarán de color rojo)
     b) git add . (esté comando nos adiciona todos los archivos o carpetas los cuales creamos o modificamos, existen mas características de este comando)
     c) git status (al ejecutar el paso b y ejecutamos nuevamente un git status este nos muestra todos los archivos modificados o creados cambiando el color a verde, esto hacemos para corroborar que se hayan incluido todos los cambios)
     d) git commit -a (este comando nos abre nano y aquí colocamos un comentario sobre el cambio que se realizo y es el que va a quedar registrado)
     e) git push origin develop (este comando es el que sube a nuestro repositorio los cambios realizados en el computador)
     f) git pull nombre_rama develop (aquí nos estamos actualizando del repositorio del lider del proyecto, se recomienda estar haciendo este comando al inicio del día para estar actualizado a cualquier cambio que otro usuario del repositorio realice y si haya algún conflicto detectarlo rapidamente)
NOTA: nombre_rama es la que hizo cuando se ejecuto el git remote paso 2.4.



2.8. Ya una vez se hayas realizado este procedimiento nos vamos a Bitbutket para realizar un pull request, el cual todos los cambios (commit) que haya hecho durante el trabajo, se recomienda ir trabajando y paulatinamente realizando el pull request al repositorio central.
















Presionamos Create pull request y alli subimos hacia el repositorio central





NOTA: Aquí continua las operaciones para el administrador del repositorio


1.8. El administrador del repositorio central debe aceptar los pull request (commits) que hayan realizado los integrantes del repositorio haciendo MERGE y ya el repositorio central también esta actualizado.

1.9. En caso de que observe alguna irregularidad en el código subido por alguno de los usuarios del repositorio este puede pulsar declinar pull request 

Listo ya hemos cumplido con el flujo de trabajo básico para trabajar con Bitbuckets y Git 


Espero les sirva de ayuda cualquier novedad, duda o sugerencia pueden hacerla llegar.

jueves, 28 de abril de 2016

Configurar el PROMPT del Terminal para ver la rama de GIT en Linux

Cuando estamos trabajando con git, aveces no nos acordamos en que rama estamos trabajando, para los que nos gusta trabajar con la consola,  git nos ofrece el siguiente comando git branch --list para saber en que rama estamos ubicado.

Ejemplo:

1- Abres tu terminal.
2- Te ubicas en tu repositorio. cd /tu_ruta/capeta_repositorio
3- Escribes el comando git branch --list

jpv3@tu_usuario:~/capeta_repositorio$ git branch --list
* otra_rama
  master

Si te sale el siguiente error fatal: Not a git repository (or any of the parent directories): .git es por que no estas en un repositorio git, estas ubicado en otra carpeta.

En el ejemplo anterior vemos que nos muestra cuantas ramas tenemos  (* otra_rama y master)  y en cual estamos ubicado (la que tiene el *).

Pero hay una forma de que siempre nos imprima en el prompt en que rama estamos trabajando.

Ejemplo:

jpv3@tu_usuario:~/capeta_repositorio(otra_rama)

Para eso debemos hacer los siguientes:

1- Buscar el archivo ./.bashrc , si no sabes donde esta puedes lanzar el siguiente comando 
find -name .bashrc 
jpv3@tu_usuario:~$ cd /home/tu_usuario
jpv3@tu_usuario:~$ find -name .bashrc

find: «./.cache/dconf»: Permiso denegado
find: «./.dbus»: Permiso denegado
./.bashrc
find: «./.gvfs»: Permiso denegado

Como podemos observar en el tercer resultado es donde esta ubicado el archivo .bashrc en mi maquina.

2. Una vez ubicado el archivo lo abren con el editor de texto que prefieran, en mi caso lo abro con nano.

jpv3@tu_usuario:~$ nano ./.bashrc

3. Al final del archivo colocan en siguiente lineas de código.

git_branch(){
    git branch  2>/dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}

export PS1="\u@\h:\w\$(git_branch)$ "


4. Guardas los cambios, cierras y abres la terminal y cada vez que te ubique en una carpeta que sea un repositorio git te va a mostrar en que rama estas.

Resultado final.