Git Trabajando con Ramas (branch)
Comandos:
Crea una rama
git branch nombre_rama_crear
Listar las ramas creadas en el repositorio
git branch
Enumera ramas locales y remotas
Enumere tanto las sucursales de seguimiento remoto como las sucursales locales. Combine con --list para que coincida con los patrones opcionales.
git branch -a
git branch --all
Mostrar solo las ramas remotos
git branch -r
Mostrar solo las ramas locales
git branch -v
Movernos a otra rama
git checkout nombre_rama_movernos
Crea una rama y nos movemos a ella
crea una rama y nos movemos a ella , la creacion y el cambio de rama lo hacemos en una sola linea y con un solo comando.
git checkout -b nombre_rama
Fusionar rama con la que actualmente estamos trabajando
git merge
$ git branch
* master
ramasecundaria
$ git merge ramasecundaria
Asociar una rama local con una rama remota existente
git branch --set-upstream-to= origin/rama_remota rama_local
Limpia las ramas remotas que ya no existan en origin
git fetch -p
Bajar todas las nuevas ramas del repositorio remoto
¿Y si ya tenemos el repositorio clonado, llevamos un tiempo trabajando en él, y un día un miembro del equipo sube una rama nueva al repositorio remoto? ¿Nos tiene que avisar? ¿Tenemos que saber cómo se llama la nueva rama? No es necesario, vamos a ver cómo tener siempre actualizadas las copias locales de las ramas remotas.
Primero hacemos un git fetch despues hacemos un git branch -a para enumerar toda las ramas locales y remotas , comparamos que rama nos falta en el repositorio local y nos movemos a esa rama que nos falta con el comando git checkout nombre_rama_remota entonces git automaticamente crea la rama en el repositorio local y la vincula con su repoitorio remoto.
Referencia https://mariogl.com/git-bajar-todas-las-nuevas-ramas-del-repositorio-remoto/
Refencia : https://gist.github.com/davidportella/5749283
Porque creamos una rama diferente a la principal (main)?
Para no trabajar con el poyecto que ya esta funcionando entonces con la nueva rama creada estamos trabajando con una copia del proyecto principal.
Crear nueva rama en el repositorio local
Si queremos crear un nueva rama en el repositorio local usaremos el comando:
$ git branch nombre_de_la_nueva_rama
y al crear una nueva rama estamos copiando los archivos de la rama principal(main) pero no se visualizara en la carpeta clonada
Crear nueva rama en el Servidor usando el comando git push
Nota: la rama que estamos creando con el comando $ git branch esta creada en nuestro repositorio local faltaria crearlo en el servidor y para crearlo lo haremos con el comando:
$ git push --set-upstream origin nombre_rama
Movernos a otra rama con checkout
Para movernos a otra rama usaremos el comando
$ git checkout poner_la_rama_que_deseas_cambiar
Crea una rama y nos movemos a ella
git checkout -b nombre_rama
Este comando git checkout -b remplaza a los dos comandos git branch <nombre_rama> y git checkout <nombre_rama> y la creacion y el cambio de rama lo hacemos en una sola linea con un solo comando.
Eliminar una rama
Para eliminar una rama en el repositorio local usaremos el comando:
$ git branch -D nombre_rama_eliminar
Para eliminar una rama en el Servidor usaremos el comando:
$ git push origin --delete nombre_rama_eliminar
►Combinar ramas con el comando git merge
Pasar las modificaciones de la rama secundaria a la rama principal(main)
Al trabajar con un proyecto primero se crea la rama principal (main) , y despues cremos otras ramas secundarias para hacer las modificaciones del proyecto y no trabajar con la rama principal una vez terminado las modificaciones y estar convencidos que funcionan correctamente esos cambios tenemos que pasarlos a la rama principal (main) para eso nos ubicamos en la rama principal(main) con el comando:
$ git checkout nombe_rama_principal
y usamos el siguiente comando para combinar las ramas:
$ git merge nombre_rama_secundaria
Explicación: Estamos ubicados enla rama principal (main) y con el comando git merge estamos combinando sobre main lo que se encuentra en la rama secundaria , es decir vamos a agregar a la rama principal lo que se encuentra en la rama secundaria.
Recuerda: que los cambios estan hechos en nuestra maquina local y tenemos que enviarlos al servidor en este caso GitHub utiliza el comando git status y ejecutar el comando:
$ git push
Para enviar los cambios al servidor de GitHub.
● Una vez terminado de combinar las ramas podemos eliminar las ramas secundarias Vea como eliminar ramas ☝ y nos quedaremos solo con la rama principal.
git: cómo mantener una rama sincronizada con "master"
El primer paso consiste en pasar a la rama principal "main" para traer los últimos cambios (commits) disponibles:
$ git checkout poner_nombre_rama_principal
Ejecutar git pull para actualizar nuestra copia de trabajo con la rama principal "main":
$ git pull
Luego volver a la rama que deseamos sincronizar con la rama principal:
$ git checkout poner_rama_a_sincronizar
Ahora es posible hacer el merge entre la rama principal "main" y la "rama a sincronizar", para que ésta última se sincronice con los cambios realizados de la rama principal "main" luego del branch:
$ git merge poner_rama_principal poner_rama_a_sincronizar
En caso de no haber conflictos, el merge es automático y nuestra rama "a sincronizar" queda actualizada con lo último en la rama principal "main".
Opcionalmente se puede luego enviar este cambio al servidor remoto:
$ git push origin poner_rama_a_sincronizar
- Para listar las ramas creadas en el repositorio.
git branch - Crea una rama
git branch nombre_rama_crear - Borramos una rama local utilizando el parámetro -D
git branch -D nombre_rama_borrar - git branch -a --> Enumere tanto las sucursales de seguimiento remoto como las sucursales locales. Combine con --list para que coincida con los patrones opcionales.
- git branch -all --> Lo mismo que hace git branch -a.
- git branch -r --> Te muestra los branches remotos.
- git branch -v --> El parametro -v te muestra los branches locales
- git checkout nombre_rama_movernos --> Para movernos a otra rama.
- git checkout -b nombre_rama --> crea una rama y nos movemos a ella , la creacion y el cambio de rama lo hacemos en una sola linea y con un solo comando.
- git merge --> Si queremos fusionar una rama con la que actualmente estamos trabajando, utilizaremos git merge.
$ git branch * master ramasecundaria $ git merge ramasecundaria - git branch --set-upstream-to=origin/<branch> rama_remota --> Asociar una rama local con una rama remota existente
- git fetch -p --> Limpia las ramas remotas que ya no existan en origin