DEV Community

Cover image for Git flow, feature branches :)
jesusfhohs
jesusfhohs

Posted on • Updated on

Git flow, feature branches :)

Hello! 😎 👽

Una vez dominando los términos generales de Git e aquí recomendaciones para trabajar con ramas, cabe mencionar que existen diferentes métodos para realizarlo...

Dependiendo de los ambientes que se tengan pueden ser:

  • Development (dev)
  • QA/Test (test)
  • Staging (staging)

Partiendo desde main o master.

Podemos iniciar ya sea con master o bien con main

Jesús Fonseca@DESKTOP-BD5A9L MINGW64 /c/ (main)
$ git branch
* main
Enter fullscreen mode Exit fullscreen mode

(En este caso main será nuestra rama principal)

Creando nueva rama

Se pueden optar por 2 métodos uno:

git branch (nombre de la rama)

git branch feat-new-feature
Enter fullscreen mode Exit fullscreen mode

y posteriormente pasar a la rama creada con git switch

git switch feat-new-feature
Enter fullscreen mode Exit fullscreen mode

o bien crearla y pasar a la rama con un solo comando

git switch -c feat-new-feature
Switched to a new branch 'feat-new-feature'
Enter fullscreen mode Exit fullscreen mode

Para saber en que rama te encuentras puedes checarlo con git branch, o bien si requieres conocer tus ramas remotas y locales con git branch -a

$ git branch -a
  main
* feat-new-feature
  remotes/origin/HEAD -> origin/main
  remotes/origin/main
Enter fullscreen mode Exit fullscreen mode

Una vez que realices tus cambios en la rama creada es momento de subirlos a tu repositorio remoto

$ git status
On branch feat-new-feature
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)
        modified:   index.php
no changes added to commit (use "git add" and/or "git commit -a")
Enter fullscreen mode Exit fullscreen mode
$ git commit -am "feature: rama de ejemplo"
[new-feature 94fb72d] feature: rama de ejemplo
 1 file changed, 1 insertion(+), 1 deletion(-)
Enter fullscreen mode Exit fullscreen mode

(una vez teniendo tu commit listo solo es mandarlo a tu repositorio remoto, la primera vez tendrás que crear tu rama)
con git push --set-upstream origin (nombre-rama)

git push --set-upstream origin new-feature
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 4 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 302 bytes | 75.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
Enter fullscreen mode Exit fullscreen mode

Ya sea que te encuentres en GitLab o Github, podras hacer (si ya finalizaste tus cambios y realizado la cantidad necesaria de commits) la unión de tu rama via Merge Request o Pull Request respectivamente.

Image description

Podrás agregar una descripción e incluso indicar que esa rama se borrará una vez aceptada la petición de unión.
Image description

Quien se encargue de realizar la revisión aceptará o bien dará observaciones para poder hacerlo.
Image description
Una vez unido y si la opción fue eliminar la rama los cambios se encontrarán en main
Image description

Notarán que ya está unida y la rama no existe en el remoto
Image description
Pero de manera local quedará así que... para borrar una rama de manera local, primero se debe de estar en una rama distinta

git switch main
Enter fullscreen mode Exit fullscreen mode

Posteriormente se puede eliminar con el comando git branch -d (nombre de la rama)

git branch -d feat-new-feature
Enter fullscreen mode Exit fullscreen mode

Notarás que si consultas tus ramas locales y remotas se podrán visualizar

git branch -a
* main
  remotes/origin/main
  remotes/origin/feat-new-feature
Enter fullscreen mode Exit fullscreen mode

Así que para que se descarten las ramas que ya no son necesarias se puede ocupar el comando git remote prune origin

$ git remote prune origin
Pruning origin
URL: https://gitlab.com/tuusuario/tuproyecto.git
 * [pruned] origin/feat-new-feature
Enter fullscreen mode Exit fullscreen mode

De esta manera quedará limpio con las ramas únicamente activas

$ git branch -a
* main
  remotes/origin/main
Enter fullscreen mode Exit fullscreen mode

Top comments (0)