diff --git a/_posts/socialserv/2023-02-22-GitES.md b/_posts/socialserv/2023-02-22-GitES.md index e56ffa4..0c34334 100644 --- a/_posts/socialserv/2023-02-22-GitES.md +++ b/_posts/socialserv/2023-02-22-GitES.md @@ -6,35 +6,181 @@ category: socialservice layout: post --- -El proposito del siguiente documento es aprender mientras se utiliza git y gitflow, en especial para trabajos colaborativos. -## Requerimientos +El proposito del siguiente documento es aprender mientras se utiliza git y gitflow, en especial para trabajos colaborativos. ## Proceso Los siguientes pasos serian: -1.- Apuntar estas tareas en el deck de nextcloud con titulo "Taller de git y gitflow". +0.- Crear cuenta en [git DCF](https://git.decentralizedclimate.org/DecentralizedClimateFoundation/docs). +Para crear la cuenta se necesita un correo electrónico y un nombre de usuario, despues presionas en la esquina superior derecha el <**Registro**> e ingresas tu correo de registro, nombre de usuario <**Nombre**> y contraseña ****. +De esta forma tendras tu propia cuenta dentro de la plataforma git de DCF y clonar los repositorios de la Fundacion para contribuir. -2.- Hacer un fork repositorio docs del github la fundacion. -3.- clonar el repositorio e implementar git flow (cambiar a la rama develop). +1.- Crear un Issue en [git DCF](https://git.decentralizedclimate.org/DecentralizedClimateFoundation/docs) con un titulo breve sobre el tema <**Titulo brevemente**> , nombre del estudiante. <**Nombre del Estudiante**> y una descripción <**Descripción**> mas detallada sobre el caso o mejora que se desea realizar. -7.- Asociar el git flow feature a tu espacio personal en hackmd, editarlo con todos los procesos que se hicieron en los puntos anteriores, +2.- Hacer un Fork del repositorio [docs](https://git.decentralizedclimate.org/DecentralizedClimateFoundation/docs) del git de DCF, el cual podemos realizar al clickear el boton en la parte superior derecha donde dice Fork, ahi podemos cambiarle el titulo (Se recomienda mantenerlo y solo aceptar el fork a nuestro repositorio). -8.- terminar el feature y hacer push con los cambios ya en la rama develop. +3.- Clonar el repositorio e implementar git flow (cambiar a la rama develop). +Se debe tener un acceso a VPN y pedir una Shell Contacte al [Sysadmin](mailto:david@decentralizedclimate.org) se sugiere el uso de [OpenVPN Connect](https://openvpn.net/client/client-connect-vpn-for-windows/), para el uso de la Shell que se envie, tambien se sugiere el uso de [MobaXterm](https://mobaxterm.mobatek.net/) +Despues de tener todo lo necesario, se siguen los pasos siguientes: -4.- Crear un documento con el nombre gitflowCheetSheet.md en la rama develop, con in indice propuesto y hacer un push +1.- Se conecta a la VPN ingresando el archivo ssh a sesiones existentes dentro de OpenVPN y despues ingresa la contraseña proporcinada por el Sysadmin. -5.- Asociar la rama develop y el documento a hackmd.io +2.- Se ejecuta MobaXterm y se siguen los siguientes comandos: -6.- Clonar el repo a tu usuario personal en github, clonarlo en tu maquina, utilizar gitflow para crear una rama git flow feature. +```shell +$ ssh pagano@10.162.235.52 #Se conecta uno a la VPN con el usuario que le proporcione el Sysadmin (el cual le pedira un usuario y una contraseña) -9.- Solicitar merge request al proyecto en github de la fundacion, rama develop. +$ su [team numero] #Aqui se usara el team al que seas unido ejemplo si eres del team 2 deberas ingresar su team2 -10.- hacer un git flow release (con ayuda del admin de la rama). +$ tmux a-t 0 # Si existe la sesion 0 que se creo previamente por otro usuario utilizar el comando de tmux a -t 0 -11.- hacer un hotfix con las actualizacion de la documentacion de los procesos anteriores en el documento. +``` + +>**Sugerencias:** + +>**Si existe la sesion 0 que se creo previamente por otro usuario utilizar el comando de tmux a -t 0** + +>**tmux ls - Lista sesiones activas de tmux** + +>**Si estas dentro de tmux para salir utiliza Ctrl+b despues apretar d para no cerrar la sesion de todo.** + + +Cuando tengas tu VPN y Shell podras iniciar sesion y dentro entrar al team1 y al + +```shell +$ git clone https://git.decentralizedclimate.org/DecentralizedClimateFoundation/docs +``` + +Entramos al proyecto git clonado en la maquina y vamos al archivo correspondiente en la ruta: docs/posts/socialserv/ + +```shell +$ cd docs +``` + +4.- Abrimos el Feature a partir de la la rama develop +para esto debemos pasarnos a la rama develop con el comando: + +```shell +$ git checkout develop + +$ $ git flow feature start MYFEATURE (MYFEATURE se cambia por el nombre que quieras identificarlo). +``` + +Entramos al archivo correspondiente: + +```shell +$ cd _posts/socialserv/ +``` +Se editara el documento (en este ejemplo 2023-02-22-GitES.md) poniendo el comando del editor vim (**para el ejemplo seria: vim 2023-02-22-GitES.md**) pulsando `i` y empezamos a editar el documento. + +>Se adjunta un Cheat Sheet de vim para guiarte y editar de forma correcta y eficiente el archivo en vim. + + +```shell +# Cheat Sheet de Comandos Básicos de Vim + +Modo Normal: +- `i` - Cambiar al modo de inserción. +- `x` - Eliminar el carácter actual. +- `dd` - Eliminar la línea actual. +- `yy` - Copiar la línea actual. +- `p` - Pegar el contenido copiado o eliminado después de la línea actual. +- `u` - Deshacer la última acción. +- `Ctrl + r` - Rehacer la última acción deshecha. +- `:w` - Guardar el archivo. +- `:q` - Salir de Vim. +- `:q!` - Salir de Vim sin guardar cambios. + +Modo de Inserción: +- `Esc` - Cambiar al modo normal. + +Modo de Comando: +- `:set number` - Mostrar números de línea. +- `:set nonumber` - Ocultar números de línea. +- `:set tabstop=4` - Establecer el tamaño de la pestaña en 4 espacios. +- `:set expandtab` - Utilizar espacios en lugar de tabulaciones. +- `:set autoindent` - Habilitar la indentación automática. +- `:set syntax=python` - Establecer la sintaxis resaltada para Python (sustituir "python" por el lenguaje correspondiente). +- `:help ` - Mostrar la ayuda sobre el comando especificado. +``` + +Puedes agregar, editar o mejorar el documento asi como estudiar el cheetsheet de gitflow y de gitlab. + + +>Puedes tener una terminal abierta en **tmux** asi tendremos corriendo el servidor mientras editamos, esto se realizaria con bundle. +> Verifica que bindle este instalado con el comando siguiente: **bundle --version** +Si no esta instalado puede seguir estos pasos: + +```shell +gem install bundler +``` + +Lo corremos para visualizar los cambios en el conteneder de la VPN http://ip:puerto +> Ejemplo: http://10.162.235.52:4000/ + +Luego que todo podemos agregar los cambios cerrando el documento con Ctrl + x y despues con el comando: + + +```shell +$ git add . +``` +> Antes de agregar algo, recuerda estar en la raiz del proyecto git en este caso **docs** + +Con esto agregamos el archivo o archivos modificados al area de preparacion. + +Despues debemos crear el commit con los cambios agregados. + +Después de ejecutar git add ., puedes crear un commit utilizando el comando git commit -m "mensaje del commit". Al hacerlo, se crea un nuevo commit que contiene los cambios registrados en el área de preparación. El mensaje del commit proporcionado después del parámetro -m describe los cambios realizados en el commit. + + +```shell +$ git commit -m "Mensaje" +``` + +> Aclara que se modifico, agrego o mejoro en el commit brevemente pero conciso. + +5.- Al terminar el Feature debemos hacer el push con referencia. + +```shell +git push origin feature +``` + +Esto enviará los cambios de la rama **feature** al repositorio remoto llamado **origin**. Asegúrate de reemplazar "feature" con el nombre de tu rama. + +Terminamos el Feature hacia la rama develop (la rama de donde partio todo). + +Por buena practica se recomienda hacer primero un pull y despues nuestro respectivo push. + + +```sh +$ git flow feature pull origin MYFEATURE #MYFEATURE se reemplaza por el nombre que le pusiste al feature. + +$ git feature finish +``` + +Puedes comprobar que tu commit esta ya en la rama develop cuando hagas uso del comando: + + +```shell +$ git log +``` + +El cual nos da un historial de los commits del proyecto con los datos de quien lo hizo a que hora y la fecha. + + +```sh +git push +``` +Esto nos pedira nuestro usuario y un codigo ssh que nos proporciona el mismo git. +> El ssh lo puedes generar al entrar a [Configuracion ~ Aplicaciones] le ingresamos un nombre y generamos el codigo que sustituira a la contraseña. + +Verifica que si se hizo el git push en tu repositorio forkeado en la pagina de gitDebes ingresar a tu repositorio y ver que el push fue agregado de forma correcta. + + +6.- Hacer el Pull Request en el git de Decentralized Climate de la rama develop personal a la rama develop del Repositorio de DCF. ## CONTACTO Y DESARROLLADORES @@ -42,6 +188,8 @@ Los siguientes pasos serian: - [David E. Perez Negron R.](mailto:david@neetsec.com) +- [Gustavo Bermudez](mailto:nizaries44@gmail.com) + ## Referencias Cheatsheet de git flow: https://danielkummer.github.io/git-flow-cheatsheet/ @@ -52,3 +200,4 @@ Link Hackmd a Git: https://hackmd.io/c/tutorials/%2Fs%2Flink-with-github Manual de markdown: https://hackmd.io/c/tutorials/%2Fs%2Fhow-to-create-book. +Cheatsheet de vim: https://devhints.io/vim