2023-02-15 16:14:13 +00:00
# CURSO DE GIT Y GITFLOW
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
## GIT
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
---
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
### Comandos de Git basicos o frecuentes
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
```shell
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
$ git init: Crear un nuevo git
$ git add: Agregar archivos al area de preparacion
$ git status: Estado del repositorio
$ git: commit -m pasar archivos del area de preparacion al repositorio local
$ git log: ver las versiones de archivos del repositorio
$ git clone: clonar un repositorio remoto
$ git push: modificar el repositorio remoto, con su nueva actualizacion
$ git pull: actualizar tu repositorio local con la ultima version del remoto
$ git add . sirve para agregar todos los archivos modificados al area de preparacion
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
```
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
---
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
## GIT FLOW
---
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
### Instalar en linux debian
Para instalar git flow, se requiere tener previamente git, y se executan los siguientes comandos en tu terminal ya sea con sudo o como root.
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
```
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
$ sudo apt-get update
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
$ sudo apt-get install git-flow
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
```
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
### INICIALIZAR
Una vez que estas dentro de tu directorio git o repositorio clonado, inicializa el git flow:
```
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
$ git flow init
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
```
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
### RAMAS DE GIT FLOW
![](https://www.campingcoder.com/post/20180412-git-flow.png)
* **Master**: Rama principal que mantiene la version estable de un software.
* **Develop**: Rama que se utiliza por uno o varios programadores para un software en modo pruebas.
* **Feature**: Rama temporal o local, que sirve para que cada programador desarrolle alguna funcion especifica (Libreria, funcion, clase, etc.).
* **Release**: Rama temporal solo para publicar las etiquetas de versiones y sincronizar develop con master, esto se hace cuando tenemos una version estable de software o un punto para entregable.
* **Hotfix**: Rama temporal que se utiliza para arreglar errores criticos o bugs en el codigo de produccion, generalmente se utiliza en modo de emergencia.
#### FEATURES
---
**1. COMENZAR UNA CARACTERISTICA (FEATURE)**
```
2023-02-15 15:48:42 +00:00
git flow feature start MYFEATURE
2023-02-15 18:08:05 +00:00
```
---
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
**2. FINALIZAR UNA CARACTERISTICA**
```
2023-02-15 15:48:42 +00:00
git flow feature finish MYFEACTURE Finaliza el desarrollo de una cacteristica.
OBTENIENDO CARACTERISTICAS PUBLICADAS
git flow feature pull origin MYFEATURE Obten una caracteristica publicada por otro.
git flow feature track MYFEACTURE Puedes mantener un seguimiento de tus cambios.
2023-02-15 18:08:05 +00:00
```
#### RELEASE
---
**COMO PUBLICAR UNA VERSION**
```
2023-02-15 15:48:42 +00:00
git flow release start 1.0
git flow release publish 1.0
git flow release finish 1.0
git push oirigin --all --follow-tags
2023-02-15 18:08:05 +00:00
```
---
#### HOTFIX
---
**COMO PUBLICAR HACER UN HOTFIX**
```
2023-02-15 15:48:42 +00:00
git checkout develop
git pull
git checkout master
git pull
git flow hotfix star (Nombre)
2023-02-15 18:08:05 +00:00
Hacer cambios
2023-02-15 15:48:42 +00:00
git status (verifique el archivo de color rojo)
git add . (agregar archivos)
git commit -m 'Escribe un comentario'
git flow hotfix finish (name)
2023-02-15 18:08:05 +00:00
Recuerda poner una etiqueta de versión fija 1.2.x por ejemplo 1.2.2
2023-02-15 15:48:42 +00:00
estabas en el maestro, y luego debes estar en la rama de desarrollo
git push origin --all --follow-tags
2023-02-15 18:08:05 +00:00
```
## LICENSE
```
Copyright (C) 2023 DECENTRALIZED CLIMATE FOUNDATION A.C.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts.
A copy of the license is included in the section entitled "GNU
Free Documentation License".
```
## CONTACTO Y DESARROLLADORES
> Work developed in collaboration with the [Decentralized Climate Foundation](https://decentralizedclimate.org).
- [Gustavo Bermudez ](nizaries44@gmail.com )
## REFERENCIAS
\[1\] Daniel Kummer, "Git-flow cheatsheet", https://client.aragon.org/#/decentralizedclimate/, 2023.
2023-02-15 15:48:42 +00:00
2023-02-15 18:08:05 +00:00
\[2\] www.campingcoder.com, "How to use git flow", https://www.campingcoder.com/2018/04/how-to-use-git-flow/, 2023.