Skip to content

Git Flow

devconker22 edited this page Sep 19, 2023 · 10 revisions

Este repo está destinado a enseñar los comandos básicos de git-flow.

Git-Flow

gitflow

Lineamientos

  • Las subidas a producción siempre se realizan desde Master.

  • Master siempre debe ser estable y encontrarse listo para desplegarse.

  • El trabajo siempre se realiza sobre Dev. Poniendo el foco en que el producto sea liberable y disponible.

  • La rama de Release viene a ser utilizada para estabilizar el desarrollo.

  • Cuando desarrollamos una característica, esta se realiza sobre una rama Feature.

  • Los miembros del equipo pueden trabajar conjuntamente sobre esa rama Feature.

  • Las ramas Feature siempre hacen merge con Dev.

  • Las ramas Feature siempre se eliminan después del merge con Dev.

  • Existe una rama llamada Hotfix para resolver problemas críticos de producción. Además, esta nueva rama será fusionada con Master y Dev tan pronto se solucione dicho inconveniente.

Git

Comandos git para copiar y sincronizar un repo remoto hacia local. Se requiere instalar gitflow.

git clone https://github.com/helttonrl/exercism.git
git checkout develop
git pull origin develop
git branch -a
git flow init 
git flow feature start "name"
git flow feature finish "name"
git flow feature publish "name"
git flow hotfix start "name"
git flow release start "name"

Más comandos de gitflow

git flow feature [list] [-v]
git flow feature start [-F] <name> [<base>]
git flow feature finish [-rFk] <name|nameprefix>
git flow feature publish <name>
git flow feature track <name>
git flow feature diff [<name|nameprefix>]
git flow feature rebase [-i] [<name|nameprefix>]
git flow feature checkout [<name|nameprefix>]
git flow feature pull <remote> [<name>]

Descripción de los algoritmos.

Existen varios algoritmos de ordenamiento, cada uno con sus propias características y eficiencia en términos de tiempo y espacio. A continuación, te mencionaré algunos de los algoritmos de ordenamiento más comunes:

  1. Bubble Sort (Ordenamiento de burbuja): Este es un algoritmo simple que recorre la lista repetidamente y compara elementos adyacentes, intercambiándolos si están en el orden incorrecto. Aunque es fácil de entender, no es eficiente en términos de tiempo y generalmente no se utiliza en aplicaciones prácticas para conjuntos de datos grandes.

  2. Insertion Sort (Ordenamiento por inserción): Este algoritmo construye la lista ordenada uno a uno, moviendo elementos no ordenados hacia la posición correcta en la lista ordenada. Es eficiente para conjuntos de datos pequeños.

  3. Selection Sort (Ordenamiento por selección): En este algoritmo, se busca el elemento mínimo de la lista y se coloca al principio. Luego, se busca el siguiente elemento mínimo y se coloca en la posición siguiente, y así sucesivamente. Es simple pero ineficiente en comparación con otros algoritmos.

  4. Merge Sort (Ordenamiento por mezcla): Este algoritmo utiliza la técnica de "dividir y conquistar". Divide la lista en mitades, ordena cada mitad y luego combina las dos mitades ordenadas en una sola lista ordenada. Es eficiente y estable, incluso para grandes conjuntos de datos.

  5. Quick Sort (Ordenamiento rápido): Al igual que Merge Sort, Quick Sort utiliza la técnica de "dividir y conquistar". Se elige un elemento pivote y se divide la lista en dos subconjuntos: elementos menores que el pivote y elementos mayores que el pivote. Luego, se ordenan los subconjuntos y se combinan. Es eficiente y a menudo más rápido que Merge Sort en la práctica.

  6. Heap Sort (Ordenamiento por montículos): Este algoritmo utiliza un montículo (heap) para organizar los elementos. Crea un montículo máximo (o mínimo) a partir de la lista y extrae repetidamente el elemento principal (máximo o mínimo) hasta que la lista esté ordenada. Es eficiente y tiene una complejidad de tiempo de O(n log n).

  7. Counting Sort (Ordenamiento por cuenta): Este algoritmo es adecuado para conjuntos de datos con valores enteros dentro de un rango específico. Cuenta la frecuencia de cada elemento y utiliza esa información para ordenar los elementos. Es eficiente cuando se cumplen sus condiciones de uso.

  8. Radix Sort (Ordenamiento por raíz): Radix Sort es útil para ordenar números enteros o cadenas alfabéticas. Se basa en la idea de ordenar los elementos por sus dígitos o caracteres más significativos y luego combinarlos. Es eficiente para conjuntos de datos grandes y tiene una complejidad de tiempo lineal.

Estos son algunos de los algoritmos de ordenamiento más comunes, y cada uno tiene sus ventajas y desventajas. La elección del algoritmo adecuado depende del tamaño del conjunto de datos, la estabilidad requerida y otros factores específicos del problema que estás resolviendo.

Clone this wiki locally