Hola de nuevo, en este video veremos un ejemplo de uso de ramas cuando estamos trabajando en repositorios remotos. Para comenzar, veamos algunos aspectos que son importantes cuando trabajamos en repositorios remotos y ramas. Cuando clonamos un repositorio remoto, obtenemos una copia completa del repositorio en el repositorio local. En el repositorio local se guardan referencias al origen, asà sabemos localmente en donde se encuentran las versiones del repositorio remoto. Si en el repositorio remoto otro usuario crea una rama, no la tendremos en el repositorio local hasta que no hagamos un "pull" o un "fetch". Al hacer el "pull", el repositorio local se actualiza y se entera que hay una rama nueva, sin embargo, la rama todavÃa no está asociada a una rama local. Esto sólo sucederá en el momento en que hagamos un "checkout" de la nueva rama. Los cambios que hagamos a las ramas localmente, los podemos enviar a la rama del repositorio remoto usando el comando "push". Al estar conectados a un repositorio remoto, Git registra cuáles ramas remotas están vinculadas a las ramas locales, y de esta forma sabe, al hacer "push", a cuál rama remota debe enviar los cambios. Cuando creamos una rama en el repositorio local y queremos publicar esa rama en el repositorio remoto, el comando "push" nos provee opciones para indicar que se debe crear una nueva rama en el repositorio remoto. En el siguiente ejemplo vamos a utilizar los comandos de Git para crear y actualizar ramas en repositorios remotos. En este ejemplo vamos a clonar un repositorio de Git. Luego, en el repositorio remoto crearemos una nueva rama y haremos un cambio sobre esa rama. Luego actualizaremos nuestro repositorio local y veremos como se asocian las ramas remotas con las ramas locales. Finalmente, crearemos ahora, una rama en el repositorio local para publicar esa rama en el repositorio remoto. Tenemos un repositorio que tiene una carpeta de documentos y un archivo "readme.txt", clonemos el repositorio en nuestro espacio local. Consultemos el "log" del repositorio. Vemos que el repositorio local y el repositorio origen tienen la rama "master" y en los dos repositorios el "HEAD" apunta a esta rama. Creemos ahora en GitHub una nueva rama Introducción en el repositorio remoto y pasémonos a esa rama. Modifiquemos el archivo "readme.txt", agregando una nueva lÃnea a la introducción. Hagamos "commit" de estos cambios. Ahora, actualicemos nuestro repositorio local con el comando "pull" para obtener los cambios que hicimos. Al hacer "pull", nos indica que hay una nueva rama introducción en el repositorio remoto. Si consultamos las ramas con el comando "branch" menos a, vemos que la rama introducción está en el repositorio remoto, pero no está en el repositorio local. Consultemos las ramas con la opción menos vv, que enlista las ramas locales, y para cada una nos indica con cuál rama está asociada. Vemos que sólo tenemos la rama "master". Para asociar la rama remota introducción a una rama local, debemos hacer "checkout" de la rama. Al hacer "checkout", asocia la rama local a la rama remota. Verifiquemos de nuevo el listado de ramas. Ya tenemos la rama local introducción, y verifiquemos con la opción "menos vv", que esta rama quedó asociada a la rama remota. Ya vimos cómo podemos crear ramas en los repositorios remotos y actualizar los repositorios locales, dejando asociadas las ramas del repositorio local con el repositorio remoto. Veamos ahora, cómo creando una rama en el repositorio local la podemos llevar al repositorio remoto. Creemos la rama colaboradores, y pasémonos a esta rama con el comando "checkout". Revisemos cómo tenemos nuestras ramas. Vemos que, tenemos una nueva rama local que no está en el repositorio remoto. Ahora vamos a hacer una modificación en el archivo "readme.txt" en la versión que tenemos en esta rama, agregando algunos colaboradores al archivo, guardamos los cambios, y vamos a enviar estos cambios a nuestro repositorio, utilizamos el comando "add" y el comando "commit". Vamos a enviar ahora nuestros cambios al repositorio remoto, para eso utilizamos el comando "push", y vamos a utilizar la opción "menos menos set", "menos upstream", porque vamos a crear una rama nueva en el repositorio remoto. Debemos indicar el repositorio remoto y cómo se va a llamar la nueva rama. Al enviar los cambios nos indica que en repositorio remoto se creó una nueva rama colaboradores y que quedó enlazada a la rama del repositorio local. Revisemos ahora en GitHub, nuestra nueva rama. Tenemos la rama colaboradores y en ella el archivo con los cambios que hicimos. Verifiquemos ahora nuestro listado de ramas en el repositorio local. Vemos que tenemos la rama colaboradores en el local y la rama colaboradores en el remoto. Y por último, verifiquemos cómo quedan asociadas las ramas locales a las ramas remotas con la opción "menos vv". Observamos que la rama colaboradores quedó asociada a la rama colaboradores en el repositorio remoto. Con esto concluimos nuestro ejemplo. Vimos cómo crear ramas en un repositorio remoto y actualizar el repositorio local, dejando asociadas las ramas. Y también cómo creamos una rama en el repositorio local y la enviamos al repositorio remoto, dejándolo asociado a la rama local. Con este ejemplo hemos terminado el recorrido de las funcionalidades de Git, que son necesarias para poder trabajar de forma efectiva en un equipo que utilice Git para gestionar el código y los flujos de trabajo de un producto de "software". En el siguiente video revisaremos los flujos de trabajo más comunes que utilizan los equipos de desarrollo de "software".