|
|
|
@ -0,0 +1,223 @@
|
|
|
|
|
---
|
|
|
|
|
title: Taller de Git & GitFlow
|
|
|
|
|
author: Decentralized Climate Foundation
|
|
|
|
|
date: 2023-02-22
|
|
|
|
|
category: socialservice
|
|
|
|
|
layout: post
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
El proposito del siguiente documento es aprender mientras se utiliza git y gitflow, en especial para trabajos colaborativos.
|
|
|
|
|
|
|
|
|
|
## Proceso
|
|
|
|
|
|
|
|
|
|
Los siguientes pasos serian:
|
|
|
|
|
|
|
|
|
|
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 **<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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
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).
|
|
|
|
|
|
|
|
|
|
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:
|
|
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
|
|
2.- Se ejecuta MobaXterm y se siguen los siguientes comandos:
|
|
|
|
|
|
|
|
|
|
```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)
|
|
|
|
|
|
|
|
|
|
$ su [team numero] #Aqui se usara el team al que seas unido ejemplo si eres del team 2 deberas ingresar su team2
|
|
|
|
|
|
|
|
|
|
$ tmux a-t 0 # Si existe la sesion 0 que se creo previamente por otro usuario utilizar el comando de tmux a -t 0
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
>**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 <comando>` - 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.
|
|
|
|
|
|
|
|
|
|
6.1.- Se debe ingresar a la rama con la que se hara el Pull Requests (Esto lo podras realizar ingresando como se comento anteriormente en la pestaña superior izquierda).
|
|
|
|
|
|
|
|
|
|
6.2.- Despues en la pestaña de donde dice Pull Requests clickeamos y nos aparecera un boton verde donde dice crear "Crear Pull Request" le damos click.
|
|
|
|
|
|
|
|
|
|
6.3.- Nos saldran las dos ramas que se desean fusionar: Primero debemos ingresar la rama a la que se quiere hacer el pull en este caso la rama develop de DCF y despues se ingresa la rama de nuestro repositorio en este caso podriamos tomar la rama develop de nuestro propio repositorio.
|
|
|
|
|
|
|
|
|
|
6.4.- Nos pedira los datos para crearlo como un breve titulo de lo que se mejora, agrega o edita, tambien una descripcion donde podemos detallar lo que se hizo (podemos ver como va quedando el pull request con la opcion de "Vista Previa").
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Terminando de agregar los datos respectivos, se hace el Pull requests agregando/citando que issue se resuelve agregando por ejemplo:
|
|
|
|
|
|
|
|
|
|
Resolved #0
|
|
|
|
|
|
|
|
|
|
No obstante, en la actualidad, Gitea no cuenta con una función incorporada que permita mostrar un mensaje en el problema al que se hace referencia, indicando que se ha referenciado el Pull Request.
|
|
|
|
|
|
|
|
|
|
Esto referenciara el issue que se resuelve con el Pull automaticamente y asi el Administrador podra revisarlo y cerrarlo si es el caso.
|
|
|
|
|
En Gitea, no se dispone de una función nativa para cerrar automáticamente los issues mencionados en la descripción del Pull Request.
|
|
|
|
|
Sin embargo, es posible cerrar manualmente una propuesta al incluir la referencia "Resolved #0" en la descripción del Pull Request.
|
|
|
|
|
Una vez que se fusiona del Pull Request, el problema mencionado se cerrará automáticamente.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## CONTACTO Y DESARROLLADORES
|
|
|
|
|
> Work developed in collaboration with the [Decentralized Climate Foundation](https://decentralizedclimate.org).
|
|
|
|
|
|
|
|
|
|
- [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/
|
|
|
|
|
|
|
|
|
|
Video Sobre gitflow: https://www.youtube.com/watch?v=BYrt6luynCI
|
|
|
|
|
|
|
|
|
|
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
|