Trabajar con nuestro código de forma segura es tan importante como aprender a programar por eso herramientas como Gigi Hub son esenciales en el mundo del desarrollo de software con este curso de 5 horas y a través de 45 clases aprenderás desde cero todo lo necesario para aprender a trabajar con git el sistema de control de versiones por excelencia y la plataforma de código colaborativo te interesa pues no te Muevas porque comenzamos a picar Bienvenidos a moureth tutoriales de programación y desarrollo de App iOS y Android Mi nombre es Soy ingeniero de software desde hace más
de 12 años registrar el histórico de trabajo de nuestro código crear copias de seguridad y trabajar en equipo de forma rápida y sin errores Estas son las principales características de git y cuando me planteé sobre qué hacer el próximo curso me di cuenta de que git Están presentes en todo el sector sinceramente no existe una tecnología que se utilice tanto como git en el mundo del desarrollo de software sin importar el lenguaje de programación o el entorno en el que trabaja sin duda es un estándar que debemos de conocer no te lo crees pues mira
esto la encuesta desarrolladores destacoverflow es la más importante del sector seguramente la mejor para representar las tendencias actuales Pues bien cuando se pregunta Sobre el sistema de control de versiones más utilizado aquí tienes los resultados de toda la gente que ha respondido la encuesta más del 93% utilizan y a nivel profesional casi un 97%. si en esta misma encuesta buscamos la sección de plataformas de control veremos algo muy parecido github es con diferencia la más utilizada un 87% a nivel personal y un 55 a nivel profesional quieres más motivos estos son los resultados de la
encuesta de la propia github su llamado Octobers en el último año ha alcanzado cifras históricas existen 94 millones de developers en más del 90% de las empresas más importantes del mundo utilizan esta plataforma para alojar su creo que estos son motivos que nos dejan muy clara la importancia de git y de Gigio Pues bien lo que vas a ver a continuación es el resultado de su importancia un curso desde cero y para principiantes de 5 horas y 45 clases totalmente editado a partir de las Lecciones que realicé en su momento en directo y hasta lo
largo del curso tendrás un ejercicio para poner en práctica todo lo aprendido antes de comenzar me gustaría hacer un repaso a los cuatro recursos que tienes disponibles para llevar a cabo este tutorial en primer lugar el sitio web allí podrás encontrar las 45 clases y un link que te llevará a la parte concreta del curso donde se verá cada uno de los conceptos también encontrarás toda la Información del curso y el hacer relevantes te pediría que si quieres apoyar este recurso simplemente hagas estar en este repositorio es una forma de dejar un like y así
estarás apoyando este contenido Por otra parte también tienes a tu disposición el servidor de discos de la comunidad en él encontrarás un canal que se llama git y para preguntar compartir y charlar con la comunidad sobre esta tecnología recuerda que en discord también puedes encontrar Una sección llamada de eventos para estar al tanto de todas las actividades que realizamos día a día en la comunidad por otro lado también tienes mi canal de Twitch donde realizo directos de lunes a viernes y donde se llevó a cabo este curso ya por último y para practicar tienes la
plataforma de retos de programación de la comunidad un lugar donde por un lado practicar programación y por otro lado gran parte de los conceptos que aprenderás en el curso ya Que la forma que tenemos de compartir cada una de las soluciones a los retos será utilizando git y giro hecho este repaso Ahora sí bienvenidos al curso de git y github desde cero [Música] hablemos hablemos del primer lugar de interés que debemos de conocer Yo creo que es la página web oficial de git Así vamos a ir entendiendo que es esto de git dejemos muy claro
que hay dos conceptos Por un lado el concepto de git y por otro lado el concepto de githgam de momento vamos a hablar únicamente del concepto de kit no debemos de confundir git y de github primero vamos a hablar de kit y llegado el momento Nos pondremos a hablar de github entonces entendamos solo primera clase como git ya que git es independiente de github aunque después github dependa de git lo entenderemos muy rápidamente en el momento que lo Expliquemos Qué es git la primera página que debéis de conocer es la web oficial de git que
es git guión scm ya os las voy dejando por aquí para que lo tengáis de todas formas en la en el repo en la web del curso acabaré poniendo aquí todos los enlaces de interés aquí podemos ir leyendo un poco qué es esto de git Qué significa esto de git y nos dice bueno que lo primero que tenemos que entender es que git es de código abierto y que todo el código de Git ya para que os vayáis haciendo una idea Está en gith todo el código de git es libre todo el código de git
todo el código fuente se puede leer desde gifthaft porque github ya os adelanto que es una plataforma donde se aloja código utilizando git lo acabaremos entendiendo muy poco a poco Entonces es un sistema de control de versiones muy importante distribuido esa es una de las palabras Claves existían o existen diferentes sistemas de control de versiones pero no son distribuidos Qué quiere decir que todo dependía de un único sitio si ese único sitio se borraba reventaba lo que fuera pues el código se podía hasta llegar a perder o incluso No se podría ni trabajar esto es
distribuido Qué quiere decir que podemos llegar a tener una copia del código si estamos 10 personas trabajando en un proyecto Casi tendríamos una copia o podríamos tener una copia de todo el código en cada uno de los equipos de esas personas de explotar el servidor central donde está el código incluso podríamos recuperar las cosas y nosotros tenemos parte de seco vale eso es lo primero que tenemos que entender que es un sistema de control de versiones distribuido muy bien concepto distribuido nos lo sacamos de encima Pero qué es un sistema de control de versiones seguramente
si os Dedicáis al mundo de la programación o estáis empezando alguna vez hayáis visto los típicos Memes de cuando estoy trabajando en un proyecto incluso fuera del mundo de la programación que el hombre se les va dando ese proyecto Pues bueno yo trabajo en un proyecto y cuando ya creo que es el bueno le pongo al nombre de la carpeta proyecto guión final pero después aparece otro cambio pero claro yo lo que hago es duplicar la carpeta y le pongo proyecto guión final Versión 2 y después le pongo proyecto guión final versión 2 guión final
súper final es decir y empiezas la tesis de la universidad eso es eso es cuando no sabemos trabajar con un sistema de control de versiones eso en que queda en que se pueden perder cosas que nos podemos equivocar que se pueden borrar que ya no sé cuál es si la versión final final es más final que la final v2 no tengo ni idea Qué es un sistema de control de versiones Pues algo que Precisamente nos permite llevar un historial de todos los cambios que existan un proyecto documentar y trazar cada uno de los cambios Qué
significa esto que hay cosas que si yo las guardo no se pueden perder si yo las he guardado en este momento exacto de tiempo sé que es anterior a esto que he guardado después si llegado el caso digo he seguido hacia adelante Pero esto no me gusta quiero volver hacia atrás para algo que yo hice en el Código hace dos días yo podría volver hacia atrás y de verdad hay una línea del tiempo en el que se van guardando diferentes fotografías que nosotros indicamos y que podremos Navegar como si fuera el historial de mensajes imaginaos
de WhatsApp cada vez que mandamos un WhatsApp que llegará el momento que nosotros queremos ver qué ha pasado hace dos días En qué punto estábamos de la charla lo que fuera pues nos vamos hacia atrás y después borro esos mensajes y me Vuelvo hacia delante y después Puedo saltar podremos hacer infinitas cosas eso lo iremos explicando poquito a poco y hasta os intentaré hacer algún diagrama para que se entienda que ya vemos aquí algo así como que tengo un código y después este código se ramifica entenderemos los conceptos principales también de que es esto de
las ramas que es esto de cómo nos vamos moviendo según no sé nuestro propio proyecto de alguna manera va evolucionando vale ya digo lo Acabaremos entendiendo todo muy poquito a poco todo muy poquito a poco así que quedaros con esta página esta página es un grandísimo recurso os voy a dar aquí un súper secreto un súper Secreto a voces Pero alguien puede estar preguntándose Ah un libro de githuja porque yo también quiero tener una documentación Quiero aprender por supuesto la web de git es el mejor sitio para aprender git Hay un montón de documentación y
aquí veis Dice progite Hala un libro y qué es lo mejor este libro es gratuito y pincho por aquí en el libro gratuito ostra su libro gratuito pero veréis jovas que siempre todo está en inglés y yo no sé inglés y me cuesta leerlo y lo tengo que Traducir y seguro que me pierdo o yo que sé mirar como buena comunidad de código abierto que es todos los idiomas cosas de la vida español todo el libro traducido a español ya está Aquí tenéis seguramente el mejor libro de git del mundo en la propia página de
git fomentado por la propia gente de git y en español traducido por la propia comunidad y validado por la propia comunidad de equipo se puede comprar por supuesto se puede comprar se puede apoyar a la gente que lo ha creado porque esto bueno es decir Oye el trabajo no es gratis no pero que Sepáis que tenéis esta documentación y cuando lleguemos a la parte de github también os contaré Dónde está la documentación de github donde la podéis encontrar Incluso en español también Y dónde está todo absolutamente hecho así que que sepáis que la página web
principal de git tenéis el libro [Música] antes de irnos a configuración antes de irnos a la descarga antes de ponernos Con eso vamos a hacer una cosilla muy importante vale que es vamos a dar contexto Qué es git muy bien aquí lo tenemos pero hoy es de de ayer es de mañana de Cuándo ha salido esto de aquí y git ya nos dice que su sistema de control de versiones por supuesto pero aquí solo me quiero centrar en dos cosas es decir que inicialmente la podemos poner en inglés que los datos suelen ser mejores lo
puede lo primero que podemos ver Es que git apareció hace 17 años el 7 de abril exactamente de 2005 y que es una tecnología que Oye ya tiene bastante bagaje es una tecnología que tiene a toda la comunidad de desarrollo de software de Open source detrás ayudando a que siga evolucionando versiones nuevas de git siguen saliendo continuamente no es una tecnología que haya finalizado que se haya estancado que no evolucione para nada para nada De hecho aquí tenemos ver última versión 239 12 de diciembre de 2022 de cuando Estamos grabando esto hace un mes estaba
saliendo la última versión Así que esto es el pan de cada día del mundo de desarrollo Pero porque me vengo aquí aparte de deciros que sigue evolucionando y que tiene 17 años que le echéis un ojo a la persona que lo inventó Tenemos aquí a un talbus que si estamos en este mundillo y no conocemos que en este hombre No lo sé por lo menos hoy lo tenemos que Saber este paisano este señor está buena persona es la persona que inventó y que creó el kernel de Linux Este es el creador el creador máximo básicamente
uno de los grandes ingenieros de software de nuestra época Vale qué hizo esta persona estaba trabajando en Linux Ah mira jova pero esto Linux es que me estoy creando el núcleo de un sistema operativo Esto no Es una tontería esto no estoy picando aquí un programita que no sé qué para hacerme una calculadora no no no no no estoy diseñando y desarrollando el kernel de Linux os imagináis al Señor Linux poniendo en una carpeta kerner de Linux guión final kerner de Linux guión final final que es la de Linux guión final final v2 día 5
de enero de 2005 según lo que iba programando esta persona y guardando si discos duros y discos duros Y discos duros Bueno pues la la verdad es que utilizaba sistemas de control de versiones pero no le gustaba ninguno porque de verdad no cumplía las expectativas que él creía que debía cumplir un sistema de control de versiones para software qué hizo esta persona que entre radio y rato que más o menos iba teniendo mientras programaba el propio kerner de Linux Pues dijo me voy a crear mi propio control de Versiones y y este hombre pues directamente
lo hizo aquí lo tenéis es decir mientras creaba Linux Pues el señor Linux se creó el sistema de control de versiones que utiliza a día de hoy todo el mundo todo el mundo literal Vale entonces este es un dato que lo conoce Prácticamente todo el mundo pero para quien no lo conozca Yo no quiero perder de alguna forma la oportunidad de decir aquí que ha sido Así y de que esto no nos tenemos que sentir mal hay gente como esta persona que que es una especie de Dios y el resto de personas Pues bueno pues
hacemos lo que podemos con el código básicamente vale muy bien dicho esto que es lo único que quería hablar de la de la propia Wikipedia ahora sí [Música] vamos a pasar ya la configuración vamos A pasar a esto de que qué es esto de Linux muy bien que ha creado el señor Linux Pero cómo puedo hacer para instalar todo esto en mi máquina vale echarle un ojo a la documentación ver un poco Cómo funciona la web fijaos qué empresas lo usan aquí porque es tontería poner los iconos de todas las empresas del mundo aquí se
pone Google Microsoft aquí Se podría poner cualquier icono venimos ponemos aquí Cualquier icono de Cualquier empresa y va a estar utilizando [Música] vale Así que bueno simplemente para que os hagáis alguna idea pero lo principal lo que tenemos que entender de alguna forma es venir para aquí y Buscar la descarga o este botón de descarga si tenéis sistemas si estáis utilizando un sistema operativo como Linux o como Mac ya tenéis por defecto instalado git eso lo tenéis que saber Pero también es cierto que puede que tengáis una versión instalada de git que no es la
actualizada seguramente para todo lo que vamos a hacer en este curso os vale la versión de git que tengáis no importa si por si no os queréis actualizar por si tenéis miedo por lo que sea vamos a ver temas fundamentales y eso funciona en prácticamente cualquier versión de git vale Así que no os preocupéis en el caso de que querrá instalarla Aquí también se Explica absolutamente todo referido a Cómo es la instalación si os vais a la parte de blogs a mí ya me aparece marcada la de Mac porque yo estoy Mac pero si os
vais a Windows aquí os aparece para descargar Pues que si tenéis hasta versión portable Pero bueno una versión de 32 de 64 bits y aquí simplemente será siguiente siguiente o incluso os dice utilizando alguna utilidad como puede ser wing get o si nos vamos ya a sistemas Mac o si Nos vamos a sistemas unix en general Pues nos dice cómo tenemos que hacer la instalación vale una vez tenemos la instalación o si queréis yo os la hago aquí en Mac para que la veáis simplemente por ejemplo utilizando homebrew que es un sistema de control de
gestión de paquetes para que nosotros podamos desde la terminal instalar paquetes Yo podría abrir una terminal Esto es algo fundamental y es algo que Quiero explicar también antes de de comenzar ya con lo gordo para trabajar con git se puede trabajar desde terminal desde la terminal de sistema que tengáis por ahí o también con herramientas gráficas para hacerlo pues sin meter comandos en la terminal creo que la mejor manera de entender cómo funciona git es desde la terminal vale porque así vamos a ver qué está haciendo git fundamentalmente cada vez Que nosotros vamos lanzando cada
Comando llegado el caso en el momento que ya entendáis cómo funciona git si os queréis pasar a diferentes herramientas ya gráficas vamos a romper ya el mito no es una persona mejor ni peor porque trabaje en git con una terminal o porque trabaje en git con una herramienta gráfica Incluso en la web si no me equivoco no recuerdo dónde pero creo que la documentación o algo así no sé dónde estaba muy bien Pero hay un lugar donde aquí tenemos clientes gráficos básicamente si nos vamos aquí podemos ver las diferentes lista de clientes gráficos que hay
que esto ya no es usando la terminal todos o en Windows Mac Linux Android iOS aquí los tenéis vale Yo por ejemplo algunos que veremos porque los vamos a ver veremos parte de la terminal pero os enseñaré a utilizar git por ejemplo desde visual Studio code veremos Cómo se utiliza aquí desde Herramientas que tenemos aquí como es github desktop o como git Kraken que vemos por aquí hay infinitas llegado a este punto probar Buscar instalar desinstalar y ya veremos la que más os gusta que yo utilicé terminal que yo utilicé git Kraken no quiere decir
que vosotros lo tengáis que utilizar pero tenemos que entender que seguramente en el momento que entendemos una Vais a entender también Cómo funcionan El resto lo que os decía vamos a hacerlo desde terminal Ok desde terminal Por qué Porque es la forma en la que originalmente se creó kit Y cómo entenderemos bien cada uno de los pasos que tenemos que seguir hablamos de instalación Así que vamos a pasar a la parte de instalación paso por paso aunque no nos tengamos que parar muchísimo también os hablaré un poco de cómo utilizar la terminal si nunca habéis
utilizado una terminal terminar El sistema o un git bash hablaremos también Tendremos que utilizar un bash vale Por qué Porque necesitamos una terminal que de alguna forma entienda lo que es git según el sistema operativo que estáis utilizando por ejemplo el uni en unix ya la tendréis por defecto y en Windows cuando instaléis git se os instalará también una terminal en bash para que podáis utilizar git Entonces no hay ningún problema no es algo que que sea descabellado y que no esté Contemplado dentro del proceso de instalación si yo me voy a Mac que es
donde estoy yo me dice venga tú lo puedes instalar simplemente utilizando homebrew que es el control de paquetes Vale entonces yo me podría venir aquí y escribir directamente Blue install git si vengo por aquí y lo lanzo aquí que me va a decir inicialmente que yo ya lo tengo instalado vale eso es lo primero que tenéis que tener en cuenta si no lo Tenéis actualizado homebrew o lo que sea bueno aquí ya me dice ahí tú ya lo tienes instalado lo puedes Reinstalar si quieras o puede que tengas que actualizar homebrew o el sistema de
paquetes que tengas para que te acabe pillando la última versión si no tenéis la última versión si ya tenéis instalado git No pasa nada porque incluso no tenéis ni que actualizarlo si de verdad eso os preocupa o no os queréis meter en ese tema y no lo tenéis Pues lo instaláis desde cero en el sistema operativo que lo tengáis está todo explicado en la web y es súper fácil vale una vez tengamos esto lo siguiente que tenemos que hacer es probar si de verdad tenemos instalado git Cuál es la forma de saber si tenemos ya
git instalado por aquí vamos a escribir la palabra kit Hola Ya me aparecieron un montón de cosas entendemos que ya tenemos git Porque lo ha interpretado de alguna forma me que Oye has escrito git y git como tal pues no significa nada me dice venga aquí tienes algunos comandos de git que ya veremos que es todo esto combina git con la palabra Clon o init o add vemos aquí algunas cosas que ya entenderemos lo que es esto y sobre todo lo principal es que si no sabemos utilizar igual que cualquier Comando que nosotros lanzamos por
consola si nosotros escribimos git menos menos versión podremos ver la versión instalada que Tenemos de git en mi caso la 2390 que es la más actual incluso podemos poner git - v y también veremos que lo tenemos por aquí vale Estos son comandos propios de git y que nosotros en el momento que abrimos una terminal un batch una consola que es compatible con git que de verdad es capaz de interpretar todo el sistema que está corriendo git por detrás en nuestra máquina es capaz de saber qué hacer con todos estos comandos venga otra cosa muy
importante Es cuando no sabemos por dónde empezar muchas veces lo que hacemos es poner El Comando help voy a poner git menos help Uy esto no lo pilla Y si pongo git menos menos gel Ah bueno Esto está mal entonces ponlo Únicamente con dos guiones no lo pongas con uno cómo será con uno git menos H esto también nos puede valer y aquí nos aparecen cosas que ya nos aparecían en el momento que nosotros estábamos escribiendo directamente git Vale cuando no sabéis Cómo utilizar alguna herramienta por consola siempre empezar a probar el menos H también
os recomiendo que lo mejor que podemos hacer para seguir el curso es que veáis lo que yo voy haciendo porque si lo intentáis llevar en paralelo a no ser que se vaya pausando el vídeo puede que os quedéis atrás puede que alguna cosa nos quede Clara puede que os perdáis vale Así que lo mejor en muchos casos Es simplemente ir Pasito a pasito ir entendiendo todo esto todos estos comandos en el momento que tenemos una terminal que es capaz de entender git para git Se va se va a trabajar igual en Windows que el Linux
que es Mac todos los comandos son Exactamente lo mismo y hacen Exactamente lo mismo en todos los sistemas operativos eso tenerlo en mente porque ya digo que es un sistema que la suerte de este sistema es que funciona Exactamente Igual en todos los lados se comporta Exactamente igual en todos los lados [Música] una vez ya tenemos todo esto que sea lo siguiente Pues bueno creo que es el momento de empezar a entender ciertos conceptos de la propia consola de la propia terminar porque Puede que no entendamos ni cómo movernos por la terminal entonces creo que
podría estar bien dedicarle algo de tiempo A aprender por lo menos los comandos principales de una terminal ya que igual es la primera vez que abrís una terminal y no no sabemos ni mover por ella sí que es cierto que podemos escribir git y qué fácil es escribir guita aquí pero git al final es un sistema de control de versiones de ficheros y que está pensado sobre todo para funcionar bien en código inicialmente La idea es manejar un gran volumen de ficheros que utilizamos en desarrollo de software Funciona mucho mejor con código que por ejemplo
si lo que quisiéramos hacer es una copia de seguridad de nuestro propio ordenador o de música o lo que fuera va a funcionar muchísimo mejor con código porque las herramientas que se crearon alrededor de él En realidad sobre todo intentan beneficiar el desarrollo de software vamos a hablar de los comandos principales que podemos de alguna forma manejar en una terminal ya digo esto es general En el momento que tenemos una terminal de comandos unix que es la que vamos a tener aquí para trabajar con git tendremos ciertos comandos vamos a hablar de ciertos comandos por
ejemplo voy a venir por aquí y voy a poner ls si escribimos ls lo primero que veremos es un listado de todos los directorios que tenemos aquí entonces vemos que yo estoy en un lugar donde Bueno tengo acceso a las aplicaciones documentos librerías Películas my Drive en el momento que tenemos todo esto Pues nos podríamos desplazar cómo nos desplazamos por los sistemas de ficheros porque esto es algo que más o menos tenemos que hacer No sé o por lo menos los comandos básicos los deberíamos controlar Este es el comando ls el siguiente Comando es para
movernos alguno de estos directorios yo quiero irme al escritorio porque aquí voy a acabar creando mi primer proyecto un proyecto de software en el que vamos Empezar a trabajar con git Así que con el comando CD y pulsando tabulador nosotros en realidad ya nos podríamos empezar a desplazar por cada uno de todos estos directorios yo me quiero ir al de stop si yo no utilizar tabulador que es como una especie de autocompletar si yo empiezo a escribir de esto y escribo tabulador ya me lo va autocompletar escribo enter Ahora yo vuelvo a escribir ls qué
tengo aquí pues ya estoy en otro lugar estoy en mi Escritorio que tengo un directorio que se llama more de progress retos de programación tempo y un par de imágenes Ok es decir ya me he desplazado de alguna forma que yo quiero volver hacia atrás Si escribo CD punto punto Y ahora vuelvo a escribir ls estoy en el directorio anterior he subido una carpeta digamos y con las flechas ya veis que yo puedo moverme por diferentes comandos que yo ya he lanzado Así que con CD de esto me vuelvo al de esto Quiero saber cuál
es la ruta en la que me encuentro escribo pwd pwd me va a decir cuál es el lugar donde yo me encuentro en mi propio en mi propio equipo Yo estoy en users barra price moure barra de stop con pwd siguiente qué más podemos hacer vamos a empezar Ya a lo bueno vamos a empezar a trabajar con git para ello git lo vuelvo a repetir es un sistema de control de versiones su sistema en el que nos va a ayudar a saber cuál es el estado de Nuestro proyecto a nivel de versionado lo que muchas
veces vemos como versión 1 versión 1.1 versión 1.2 ya entenderemos que es eso es un concepto que veremos mucho más adelante pero que de alguna forma lo podemos llevar a algo así lo que quiero hacer lo que quiero hacer es crear primero una carpeta Cuál es el comando para crear una carpeta Pues voy a venir por aquí voy a escribir mkdir y entre paréntesis o entre paréntesis entre Comillas voy a escribir el nombre de la carpeta le voy a llamar Hello git incluso hasta podemos dejar un espacio ala acabo de hacer Entre qué tengo por
aquí en el escritorio es donde yo me encontraba tenemos una carpeta que se llama Hello git con dentro absolutamente nada muy bien Vamos a desplazarnos dentro de la carpeta CD Hello it Ya estoy dentro de la carpeta ya me encuentro por aquí Ya tenemos algo así Esta es la carpeta donde vamos a crear nuestro proyecto no es un proyecto de software real como tal crearemos Pues nada simplemente diferentes ficheros como si tuviésemos fingiendo que vamos a trabajar en un proyecto de software después esto cada persona lo aplicaría en su proyecto Qué es lo primero que
vamos a hacer aquí aunque no estemos moviendo por consola nosotros cuando estamos programando a no ser que utilicéis pues un editor de Texto como bim como Neo bim como imax lo habitual es que trabajamos dentro de un editor de código Así que yo sin más voy a suponer que este Hello git es donde está mi proyecto de software Así que voy a abrir visual Studio code decir con el comando code pues directamente podéis arrancar visual Studio code si lo tenéis instalado y aquí voy a hacerlo un poquito más grande para que vayamos viendo cosas tengo
por aquí visual Studio code que lo Único que estoy es en el directorio de esta carpeta ya está esto aquí no hay código ni hay nada esto podría ni ser un proyecto de software pero se supone que yo lo voy a acabar creando aquí [Música] vamos a empezar a hacer cosillas en este proyecto para empezar a entender un poco de qué va todo esto de git porque como tal aún no hemos visto qué es esto de los conceptos de git pero después iré explicando en paralelo No sé a medida que vamos hablando de diferentes cosas
aquí mirar siempre que trabajamos con git todo lo que hagamos tiene que estar asociado a alguien por qué porque vamos a abrir vamos a hablar de que nosotros podríamos tener un proyecto en el que trabajamos Solo nosotros o un proyecto en el que trabajan 50 personas que están desarrollando código y así git nos va a ayudar a que tú puedas trabajar en tu ordenador con un código yo mi ordenador Con otro código y llegado este caso podamos unir nuestros códigos y todo siga funcionando y no tengamos ningún problema que nosotros encontramos un error podemos ver
Qué cambios ha hecho una persona o ha hecho otra Cuáles han un conflicto volver a versiones anteriores etcétera etcétera etcétera con lo cual tenemos que estar siempre asociados A cuál es la persona Quién ha estado trabajando con git quién ha hecho cosas en git Así que lo primero que voy A hacer es abrirme por aquí este directorio base y yo un fichero que tengo por aquí lo voy a borrar por qué porque vamos a configurar git desde cero para ello lo mínimo que necesitamos para configurar git es tener el nombre de usuario y tener un
email eso es básico y esencial y nos hace falta no decir no no podemos de alguna forma intentar trabajar con git el propio sistema nos lo va a Requerir en el momento que queramos hacer algo por primera vez el propio sistema nos va a requerir que necesitamos un usuario y un email para limpiar la consola simplemente podemos escribir Clear si lo queremos para que no para que no veáis tanto texto y lo primero que vamos a ver es esto para configurar cualquier cosa de git que os recomendaría yo aquí que lo mejor como siempre documentación
me voy a la documentación me voy al manual Aquí vemos todo lo que se puede hacer con git podríamos ir a la configuración inicial para trabajar mirar todo lo que podemos lanzar es un sistema enorme Lo bueno es que aunque sea tan tan tan tan tan grande y podremos hacer infinitas cosas entender las bases no es algo que lleve mucho tiempo porque aunque existan mil comandos con 10 comandos podemos hacer el 95% de las cosas principales que se Pueden hacer con kit Tenemos también una opción que es la configuración es decir nosotros podemos configurar un
montón de cosas Aquí tenemos mirar el scroll fijaos será por documentación no os preocupéis no es algo que tengamos que aprender si queréis acabar convirtiéndose unos expertos unas expertas de git Pues igual toca empezar a leer estas cosas pero no es el cometido vale de este curso ni mucho menos de lo que se trata esto es De que entendamos Cuáles son las bases y las bases suficientes y necesarias que os van a pedir en un trabajo y que os van a permitir no sé llevar a cabo vuestro día a día como desarrolladores sin ningún problema
todo lo que vamos a ver en este curso es suficiente más que suficiente para llevar a cabo nuestro trabajo vale Así que que sea lo siguiente que vamos a ver aquí Cuál es la configuración mínima que necesitamos para tocar la configuración De git lo que tendremos que hacer es escribir El Comando git y a continuación lo que tendremos que hacer es A qué nivel vamos a establecer esta configuración lo habitual y sobre todo cuando estamos empezando es establecerla a nivel global entonces escribimos guión guión global esto significa que lo que vamos a configurar es a
nivel global a la hora de trabajar con git dentro de mi equipo No es algo concreto para este proyecto este directorio no no no no cualquier persona que entre con mi usuario en mi equipo si yo le digo que esto es global pues va a afectar a todo lo que se haga desde git en esa máquina porque yo lo pongo como global porque el nombre de usuario Hey es mi máquina y es mi usuario teóricamente solo voy a estar yo aquí Cómo configuramos nuestro usuario user punto name y entre comillas yo aquí puedo poner el
Nombre de mi usuario voy a poner una vez tenemos esto yo escribo y pulso intro si nos vamos al directorio base donde crea el sistema esto no tenéis ni que saber dónde está Vale pero bueno lo habitual es que lo crea en la carpeta del usuario en mac la carpeta al usuario está en users en este caso y se ha creado un fichero que se llama kit config me voy a abrir este fichero que dice aquí coffee qué Tenemos aquí pues bueno se ha creado algo que es la configuración de usuario y dice name igual
a mugrede muy bien ya tenemos el nombre por aquí creado igual que tenemos el name tenemos otra propiedad que podemos configurar por aquí que es el email entonces voy a poner yo aquí email y voy a meter mi email que es price maure arroba com lo ejecuto este fichero si yo lo vuelvo a abrir ahora ya está actualizado aquí tenemos nombre email Esto es lo único que necesitamos para configurar la base de git sin estas dos cosas sin el nombre y sin el email nosotros no podemos ni empezar a trabajar con git no podremos empezar
a hacer absolutamente nada siguiente Ahora sí vamos a ver comandos Ya vimos Cómo funciona un poquito la consola cómo nos movemos por la consola Y qué es lo primero que tenemos que configurar [Música] y vamos a empezar a entender qué es esto De git cuáles son los conceptos principales con los que tenemos que trabajar en git me voy a traer por aquí un círculo sin más este círculo por ejemplo azul y vamos a empezar a entender qué es esto de git voy a dejar este círculo aquí y nos vamos a ir a nuestro editor de
código aquí voy a crear un fichero si quisiéramos hacerlo desde consola ya que hemos creado así algunas cosas desde consola estoy en el directorio Hello kit Esto está vacío si yo escribo touch y escribo el nombre de un fichero por ejemplo voy a poner Hello git.pay porque me voy a crear un fichero en python da igual el fichero que sea lo que os dé la gana es decir un fichero de código para que empecemos a entender Cuáles son los conceptos de manejo de control de versiones Acabo de crear este fichero con el touch Hello git
que tenemos ya aquí pues bueno un fichero un fichero En python qué Tenemos en este fichero en python voy a escribir cualquier cosa en python por ejemplo un print que me diga por aquí Hello it ya está este es nuestro fichero de código no importa absolutamente lo que tengamos aquí ahora vamos a ver qué pasa con esto y yo ahora llegado un momento me pongo a editar todo esto y yo aparte del Hello git me vengo por aquí y digo qué tal el curso y el día de mañana digo Ay qué Tenía yo el otro
día en este fichero por qué lo quiero dejar como antes quien ha añadido esto quiere Cómo vuelvo atrás no lo sé decir cualquier cosa que yo quisiera ver reflejada en estos documentos pues no Lo tendríamos vale Y aquí es donde entra el control de versiones Porque alguien si un control de versiones se habría guardado el proyecto En este estado y después lo habría duplicado y habría creado otra carpeta con ahora esta segunda Instrucción vale vamos a entender que ahora mismo nosotros tenemos Este es un proyecto de software entendemos que este es un proyecto de software
pero aquí ya está funcionando git tenemos git como tal vamos a nuestra consola cómo hacemos que de verdad en un directorio empieza a funcionar git vamos a abrir la carpeta donde estamos Este es el proyecto donde solo hay un documento llamado Hello git.pay Cómo Indicamos que queremos trabajar en este directorio con git que queremos inicializar el contexto de un control de versiones aquí vale simplemente tenemos que escribir en el directorio raíz donde queremos inicializar el contexto de git escribimos git init ya está se ha lanzado qué tenemos Ahora aquí una carpeta que está presidida por
punto esto lo que significa habitualmente en los sistemas de directorios que esta Carpeta está oculta no tenéis ni por qué Mostrar Los ficheros ocultos pero sí que es cierto que como desarrolladores muchas veces en ficheros ocultos hay información que a nosotros nos interesa nos interesa para nuestros proyectos nos interesa para trabajar así que yo os diría que de alguna forma busquéis como en vuestro sistema operativo se muestran estos ficheros ocultos no quiere decir que tengamos que entender todo lo que se ha creado aquí Git ha creado un montón de cosas una carpeta que es punto
git que inicialmente no tenemos ni saber ni cómo funciona ni Tendremos que editar ni tocar Ni absolutamente nada pero bueno es el lugar donde de verdad va a quedar una referencia de lo que va a estar haciendo git en algún lugar lo tiene que almacenar como nosotros queremos trabajar aquí únicamente en este directorio con git es por eso que aquí es donde se crea el punto git en su día Esta se creaba un punto gits en todas las carpetas después de su unificar todo Uno Vale entonces Dónde está el punto git esto nos indica y
aquí es algo importante primer concepto importante aquí se está indicando que de alguna forma hemos creado un repositorio de git es decir que de alguna forma ahora mismo este directorio trabaja con un control de versiones vale decir que aquí ya vamos a poder empezar a trabajar con todas las Herramientas que nos proporciona git que Cuáles son todas las herramientas lo iremos entendiendo poquito a poco vamos a ver lo que nos dice la consola vale nos ha creado algo que nos llama Master incluso según la terminal que estéis usando yo ya tengo configurada la mía yo
estoy utilizando item y estoy utilizando un tema de zsh para tunear para poner un poco bonita la terminal y que ya está me va indicando que yo ahora Si recordáis Antes me mostraba que estaba en desktok Hello git ahora me dice que estoy en desktok Hello git Master esto podéis preparar vuestra terminal para que se vean este tipo de cosas vale Esto no es algo que nos haya dado git como tal sino es como está preparada la terminal que en mi caso os vais a Oh my zsh esto es una web para tunear de alguna
forma puesta termina por si queréis también tener referencia De cosillas que se le pueden hacer a nuestra terminal para que bueno nos resulte un poco más fácil un poco más bonito trabajar [Música] aquí nos dice que ahora mismo hemos creado ya un repositorio tenemos un repositorio un repositorio creado en la raíz de nuestro proyecto y nos dice que estamos en algo que se llama Master aquí es donde entra el segundo concepto Importante de git que es el concepto de Rama que es una rama imaginaos una rama de un árbol y que de una rama de
un árbol después al otra rama y después a la otra rama y después al otra rama Por qué Porque el código que nosotros vamos creando puede seguir diferentes flujos y cada rama va a tener un nombre Cómo podríamos intentar establecer esto o bueno para mí podría ser algo como que yo ahora mismo donde estoy aquí podría indicarle que para mí esto es una rama Que se llama Master imaginaos que este es mi código Este es mi proyecto este círculo ahora mío Esto es lo que se llama Hello git no que es el directorio es el
proyecto una vez tenemos el directorio ese del proyecto nosotros estamos en lo que hemos creado o como que hemos entendido como una rama o así lo hemos querido reflejar Vale pues entendemos que aquí donde nos encontramos esto podría ser lo que Nosotros hemos llamado rama Master estamos en una rama o aquí rama Master qué será la rama Master todo vale algo que será una rama nos dice por aquí otros conceptos que bueno que se han introducido pues no hace mucho que otras formas de llamarle a la rama Master pues puede ser Main o puede ser
trunk por qué Porque por ejemplo ahora github a las ramas Master le llama Main para no utilizar el término como maestro no que es suena a esclavitud no como tal Entonces se llama rama Main como principal por no cambiar todo el sistema se suele decir bueno se ha conservado la parte de máster pero nos dice que incluso podríamos lanzar un comando para que inicialmente ya veis aquí git config menos menos global y le podríamos decir aquí Main o incluso podríamos cambiar el nombre de nuestra rama principal por Main si yo ahora quisiera tengo aquí y
hago git Branch menos veis que ahora ya no se llama Master se Llama Main así que bueno Este es un concepto de más o menos reciente incursión pero que tiene todo el sentido y que yo a día de hoy a todas las ramas que antes se le llamaban Master ahora se le llama Main y que yo he renombrado aquí que vamos a trabajar con lo que será la rama Main la rama principal de nuestro proyecto entendamos lo que es ese concepto principal de rama [Música] vamos a seguir lanzando diferentes Comandos y entendiendo Cuál es el
flujo principal de git en git hay que tener el flujo de que estamos trabajando en un repositorio de que estamos trabajando en unas ramas y de que el concepto principal es el de fotografía de nuestro proyecto es decir que Ok lo que tengo aquí Hazlo una fotografía y Guárdalo lo que hablábamos antes esa versión 1 sigo programando Ah vale Ahora aquí quiero volver a guardar Hazlo otra fotografía y ahora aquí otra fotografía y ahora aquí Otra fotografía nosotros ya hemos hecho algo en nuestro proyecto entonces quiere decir que de alguna manera ya podemos empezar a
guardar cosas en git Cómo podemos ver cuál es el estado de git de nuestro proyecto me vengo aquí a git pongo git estatus y vamos a empezar a ver más conceptos vemos diferentes conceptos que nos dice Hey en la rama Main dice aún no hay cómics después explicaré lo que es el concepto de cómic pero lo que tenemos es el Uit.pai Este es el fichero que hemos creado nosotros donde hemos metido el print y hay un destorre este de Store son ficheros temporales que crea Mac Y esto es algo que no nos interesa así que
de momento al des Store al punto de Store no le hagáis caso porque de ese Store es un fichero oculto que en cualquier directorio que tengamos en Mac se crea no la hagamos caso esto no no tiene que ver con el proyecto de software como tal vamos a hacerle caso Al fichero de código de nuestro proyecto que es hello git.pai veis que tampoco aparece el punto git porque eso ya forma parte del sistema entonces aquí lo que nos dice es muy bien tú tienes estos ficheros que en realidad sé que se han cambiado sé que
existen dentro de tu directorio pero yo no los tengo guardado de ninguna forma qué tienes que hacer si de verdad tú los quieres guardar si de verdad tú quieres sacar una fotografía de ellos tú tienes Que añadirlos es donde entra lo que se llama Aquí lo veis están antrack decir No lo estoy trazando por ningún lado no los estoy teniendo en cuenta si tú quieres que alguno de estos ficheros se la acabe guardando una fotografía pasar al Estado de stage Vale ahora Estamos hablando como que todo lo estamos trabajando en local en nuestra máquina como
si no tuviéramos git pero si quieres utilizar git tú tienes que Añadir el fichero o Los Ficheros por lo menos utilizando este guitard así que este fichero Hello git lo quiero versionar vamos a crear el primer la primera fotografía de nuestro proyecto Así que no voy a venir por aquí voy a decir Guitar y que quiero Añadir a quitar pues quiero Añadir Hello kit punto Pay lo escribo pulso enter y ahora voy a volver a escribir git estatus ya nos dice algo Hey aún no tendré cómics que ya explicaré lo que es esto de cómics
Pero hay un nuevo fichero que nos Dice que bueno ya está en la parte de stage No ya está ahí en el escenario preparado para que hagamos algo con él y hay algunos ficheros que no los has añadido es decir que no se van a tener en cuenta para la fotografía como este fichero punto de Store que repito que es un fichero de Mac que no quiero que la hagamos caso muy bien ya tenemos este Hello git.pai queremos lanzar la primera fotografía Cómo haremos la primera fotografía fijaos y acordaros de los Diferentes comandos gitinit empezó
el proyecto git status para ver qué está pasando con todos los ficheros que estamos tocando Guitar para Añadir cada uno de sus ficheros si hiciéramos git up seguido de punto añadiríamos todos los ficheros que están pendientes por ejemplo pero ahora lo vamos a hacer de uno en uno vengo por aquí ya tenemos preparado este Hello kit punto Pay para la fotografía qué será lo siguiente ya lanzar esa tu Fotografía de nuestro código y es lo que nos dice por aquí que aún no hay cómics es donde entra el siguiente Comando que es cómic vamos a
pasar de verdad el estado de nuestro proyecto de lo que teníamos el local allá lanzar una fotografía cómo hacemos una fotografía de lo que tenemos en este área de stage es decir únicamente de Hello git.pai pues escribo git commit y aquí podría hacer un enter hago un enter y me salta todo esto a la a se me ha abierto aquí Bim bueno Esto es un editor de código básicamente un editor de texto como tal nos dice que por favor nosotros no podemos lanzar un cómic no podemos hacer una fotografía del proyecto en este estado si
no le metemos un comentario Esto es algo muy seguro es decir esto no vale decir a la hora hago aquí un cómic y yo ni represento Ahora ni represento lo que estoy guardando Entonces qué podría hacer aquí digo Este es mi tenéis que pulsar y para empezar a insertar Este es mi primer cómic por ejemplo una vez tenemos esto yo lo podría guardar esto ya tiene que ver un poco por Cómo funciona el propio be no os quedéis incluso tampoco ni con esta parte porque Bueno si no utilizáis este editor en la propia terminal Pues
igual os da os da igual Vale entonces incluso ni lo voy a guardar decir escribo este Comentario Este es mi primer cómic nos dice que todo lo que está con este hashtag por aquí con esta almohadilla no lo va a tener en cuenta pero sí que nos da datos nos dice venga Este es el comité inicial vas a meter este nuevo fichero este de Store no lo vas a meter Vale y lo vas a cometer vas a hacer la fotografía en lo que tú has llamado rama Main podría decirle que esto no lo quiero guardar
lo vamos a hacer yo creo que de la forma que es más fácil vale Así que voy a deshacer todos estos cambios no me voy a quedar con este cambio y simplemente voy a hacer un control Z para salir Por qué Porque habitualmente no queremos desplegar todo este editor y ver un montón de cosas voy a lanzar lo siguiente que es git commit guión m esto significa guión message esta ya es una forma de indicar de alguna forma que tú con el comité este le quieres asociar un mensaje esta es la forma más rápida Para
no tener que estar abriendo un editor etcétera y yo ahora aquí me vengo y digo Este es mi primer cómic simplemente en el momento que tengo todo esto pulso enter y en el momento que he pulsado enter vamos a fijarnos en esto dice muy bien tú en Main algo que ya vemos aquí 369 os explicaré qué es esto porque es algo muy importante también en git es el concepto de Hash cada vez que nosotros sacamos una fotografía se le va a Asociar un identificador único para entender que esa fotografía no se puede repetir y que
ese es un momento único totalmente entonces tiene un Hash Cuál es el mensaje este es mi primer cómic y dice venga un fichero ha cambiado y uno se ha insertado ya está Esto es lo que hemos hecho con este commit vamos a volver a escribir git estatus get status qué nos dice ahora aquí el propio kit estatus ya no ya no nos dice que no hay cómics Ya hay un cómic pero nos dice que ahora tenemos este fichero de ese Store que no sea comiteado que no lo tenemos ni en el área de stage lo
que quiere decir es que ya hemos hecho alguna fotografía [Música] Cómo podemos ver si de verdad Esta fotografía se ha realizado de alguna manera vamos a escribir cierro esto primero y voy a escribir git log y ya tenemos esto venga tenemos un cómic con este Hash con esta clave única en el Main ya veremos también lo que es el concepto de Head el autor por eso os dije que esto es obligatorio si intentáis hacer un cómic sin haber metido usuario y sin haber metido email nos va a dejar ni hacer el cómic entonces alguien que
se llama mugredev con este email este día a esta hora ha enviado algo que dice este es mi primer cómic Entonces ya tenemos nuestra primera fotografía vamos a seguir haciendo cosas significa que Esta es nuestra fotografía pero yo ahora voy a venir por ejemplo aquí y me voy a crear otro fichero que le voy a llamar Hello git 2 punto y aquí voy a crear otra cosa voy a crear otro print que me diga en este caso Hello kit 2 vamos a volver vamos a escribir git status Ahora nos dice que Hey ya no solo
está el punto de Store tenemos Hello git 2.y que podrías de alguna forma pasarlo al Área de stage tenemos un área local después pasamos al área de stage como lo hacíamos Cómo hacíamos esto Ahora yo quiero Añadir el longitud a una fotografía Qué pasaría en este caso pues tendría que venirme por aquí y escribir guitart añado este fichero y voy a hacer git commit guion menos m y voy a poner que este es mi segundo cómic lo comimos se ha Metido otro fichero ahora ya aparecen dos recordáis a las 21:29 he metido un fichero y
a las 21:33 he metido otro fichero con un Hash diferente en el caso del primer fichero le ha asociado este mensaje este es mi primer cómic y en el caso del segundo fichero le he puesto por aquí Este es mi segundo cómic ya tenemos dos cómics esto en que se va a reflejar en que yo ahora mismo tengo esto mi rama ha avanzado Y donde yo antes tenía el fichero Hello git Hello git.pai yo ahora también tengo el fichero Hello kit [Música] 2.y tengo una fotografía en este estado con solo un fichero y tengo otra
fotografía en este estado ya con el segundo fichero Esta es una rama la rama Master que acabamos renombrando por ramain y mi rama avanzado hay dos fotografías Qué significa esto Que llegado el caso Yo podría moverme podría ver en cada caso todo lo que tenemos aquí todo lo que tenemos aquí eso es lo que significa git que yo tengo dos fotografías exactas voy a venir por aquí y ahora mi primer fichero donde Yo ponía Hello git voy a decir ahora estoy editando el fichero tengo un cambio en el fichero Esto no es un fichero nuevo
Es que yo he cambiado el fichero si yo me vengo aquí y escribo git estatus qué me dice Hey este ya no es un fichero Nuevo pero lo has modificado tienes modify el fichero llamado Hello git.pay me lo ha detectado automáticamente el sistema con lo cual quieres guardar alguna foto de esto O no quieres guardarlo Imagínate que yo no quisiera guardarlo o que yo quiero editar estos dos voy a poner git 222222 y lo guardo vamos a volver a hacer git status me dice Hey has modificado el fichero el auge y Hello [Música] imaginemos que
no quiero tener en cuenta estos cambios o digo todo lo que he programado aquí esto está mal es que no quiero ni hacer una fotografía quiero volver a cómo lo tenía yo antes me vengo por aquí dejarme que limpie y escribo otro nuevo comando git checkout Incluso si escribís git y pulsáis tabulador veis diferentes comandos que podéis lanzar el siguiente que vamos a ver y que forma parte de los comunes dentro de Git commit el siguiente es git checkout git check out es como para situarnos en un punto concreto de una fotografía asociándole un ID
o de un fichero Yo quiero volver a cómo tenía a este cómo tenía a este fichero Hello git 2 antes de haberlo cambiado porque si recordáis yo no he guardado yo no he hecho un cómic de esta fotografía de cuando yo lo he editado en realidad yo he hecho la fotografía cuando aquí decía Hello git 2 no Hello Kit 2222 Pues ahora me vengo aquí y escribo git checkout Hello git 2.y lo lanzó dice se ha actualizado qué volvemos tener aquí lo que yo tenía la última fotografía que he guardado en la rama decir he
llegado a un punto que yo no he llegado a guardar y he vuelto para atrás y yo quisiera volver para atrás a la última fotografía puedo escribir kit de reset lanzo esto y me dice Hey Aquí había un Fichero en el que tú antes lo estabas modificando y me dice Mira tú si quieres podrías tocar este fichero este Hello git.pai aún sigue modificado entonces de alguna forma tú le podrías hacer un reset a ese fichero o simplemente podrías hacer un check out y volver perdón a este fichero Hello git.pai lo lanzamos vuelvo a tener en
Hello it lo que tenía exactamente antes ya hemos visto una pequeña navegación antes de guardar vamos a seguir viendo Diferentes conceptos por lo menos los conceptos más principales porque es con los que os quiero o con lo que quiero que os vayáis quedando por lo menos al principio vale igual que vimos el concepto que tenemos aquí de githdog que nos enseña todo lo que vemos todo el historial de alguna forma para ver que esto Sigue avanzando voy a hacer un nuevo cambio voy a venirme por aquí y en este Hello kit digo New Hello it
y ahora vamos a Guardar un cambio ya de un fichero ya no de un fichero que es nuevo voy a hacer Guitar y cuál es el fichero que ha cambiado el punto Pipe lo añadimos y hago git commit menos m y le digo Aquí se actualiza el texto del printer por ejemplo lo lanzo git log ya tenemos tres muy bien pero podemos ver este listado de diferentes maneras porque puede que igual aquí veáis Demasiada información vamos a ver otras cosas que podemos Hacer con este log de alguna manera puedo escribir git log esto ya se
empieza a aparecer a una rama no algo de lo que yo quería pintar como hemos partido aquí hemos pasado Aquí y ahora hemos pasado aquí y cada vez se ha ido actualizando ya tenemos una cosilla más podremos incluso seguir mejorando para que esto se vea algo más bonito voy a escribir git lock por ejemplo grave Por ejemplo Pretty lo vamos a hacer igual a one Line y voy a lanzar esto Ahora ya lo vemos rápidamente podríamos hacer un log muy muy rápido desde que va todo esto pues tres commits y lo veo en una línea
rápidamente lo que ha pasado en cada uno de ellos muy bien Qué más aún podríamos abreviar incluso los cómics hay otra instrucción más para que veáis todo lo que da git esto no inicialmente nos lo tenéis ni que ni que Saber de memoria Pongo aquí por ejemplo de corey esto lo veremos cuando tengamos más decoramos todo y que sea una línea aquí lo tenéis el Hash en realidad me da un poco igual porque si no Quiero consultar algo muy concreto que me esté escribiendo siempre ese Hash ese ID pues me puede llegar a molestar yo
lo que quiero ver es rápidamente Cuál ha sido esa línea de movimiento de nuestra rama Pues aquí lo Tenemos [Música] cada vez que yo quiera escribir Esto me tengo que acordar Pues bueno por suerte tenemos algo Bastante Guay que es que dentro de la configuración nosotros podemos crear alias la configuración Cómo tocábamos la configuración de git git Y cómo indicábamos que esta configuración era para mi usuario pues le digo que es global para ello tengo un alias Cómo le Puedo llamar a este alias de alguna forma se ve como el árbol de nuestra rama Pues
le voy a llamar que este alias va a ser Tri Este es el nombre que nosotros nos querramos inventar y entre comillas yo le voy a decir qué es lo que quiero lanzar pues quiero lanzar un log grap decorate all online lo escribo por aquí lo lanzo y ahora vámonos os acordáis de nuestro fichero de configuración donde teníamos el usuario El email ahora si lo abro ahora tenemos algo más tenemos un alias hemos creado un alias un alias que dice que es igual a trip Qué significa esto que yo ahora si me vengo por aquí
escribo git ya vemos esto para no tener que estar acordandonos de diferentes comandos y esto significa que a medida que vayáis entendiendo cómo funciona git y que vayamos avanzando si hay comandos que sabéis que utilizáis mucho si hay Comandos que de verdad os gustan Vale pues ya lo podéis ir añadiendo a esta parte empezáis a crear alias y ya está igual podéis hacer un alias que directamente pues haga eso ese cómic con lo que veremos el concepto de Push con lo que veremos diferentes no sé comandos que podemos ir sumando nada raro Pero de alguna
forma que entendamos Que podemos crear diferentes comandos por de alguna manera pues no sé en una instrucción mucho más chiquitita [Música] hemos hecho tres commits en los que hemos ido tocando diferentes cosas hay algo que a mí me preocupa que hemos dejado aquí atrás que es si nos vamos al git estatus algo que he dejado aquí atrás que es el fichero este de ese Store el de ese Store es un fichero que si os dais cuenta yo nunca estoy metiendo al cómic porque es un fichero temporal de mi propio ordenador con referencias a mi ordenador
que cuando yo Suba esto pues no tengo que tener porque es un fichero temporal que se va a autorregenerando continuamente y aquí es donde entra otro siguiente concepto que es el concepto de ignorar ficheros si yo sé que un fichero nunca le voy a querer sacando una foto Sacar una fotografía yo no quiero que me lo esté recordando en el estatus aquí todo el rato venga da hace un guita de este desech aquí podríamos crear lo que se llama el Getting nore que es un nombre de archivo Muy importante vamos a crear un nuevo archivo
lo podemos crear desde aquí con el touch os acordáis antes que lo creamos desde la propia terminal y le voy a llamar git ignore Este es el nombre que tiene que tener punto para que sea un archivo oculto y git ignore tiene que tener este nombre Sí o sí lo creo y ya me aparece aquí lo veis git ignorey Los ficheros que añadamos dentro son ficheros o rutas o expresiones que nosotros no queremos Tener en cuenta el git ignore lo creamos en la raíz del proyecto y ahora aquí dentro lo único que tenemos que hacer
es Añadir ese fichero que nosotros es realidad pues no queremos tener en cuenta vale hay ciertas nomenclaturas pero básicamente si nosotros no queremos tener en cuenta el fichero en realidad como lo hacemos simplemente es con los asteriscos con la barra y después con un punto y el nombre del fichero que es de Ese guión bajo Store así yo estaría indicando que cualquier fichero que se llame the Store nunca me indique que puede ir al área de stage lo podemos tener en cuenta para que esto acabe formando parte de la fotografía aquí lo he añadido de
Store si no me equivoco creo que lo escrito bien entonces así es como se llama el fichero punto de Store y Añadir estos asteriscos delante lo que indica es que nos da Igual donde esté ese Stone si yo ahora empiezo a crear nuevos directorios y esos nuevos directorios tienen un nuevo de Store pues le va a dar igual como sabemos si de verdad estamos mintiendo o no voy a hacer git estatus qué me dice que tengo en el git status ahora ya no tengo el de Store me dice ahora lo que puedes Añadir es el
fichero git noir pero el giting noir ya está afectando al repositorio y ya está Pasando de Los ficheros que se llamen punto de Store pero claro nuestro kit noir es un fichero importante porque se debe tener en cuenta Así que vamos a hacer guitar añadimos el equity ignore y ahora hacemos un git commit menos m y pongo se añade el punto git ignore lo lanzó y the status ya no tenemos nada veis ahora ya no protesta con que falta algo nos dice venga estamos en la rama Principal y no hay nada que comipear el árbol
de trabajo el árbol de tu máquina el árbol en el que estás trabajando ahora mismo está totalmente limpio [Música] vamos a dar un comando más acabamos del concepto de Rama esto significa que ahora mismo yo he ido creando diferentes ramas perdonar que le quite el nombre porque Sí que es cierto que le hemos ido haciendo diferentes cosas pero Nosotros hemos ido avanzando hemos sido realizando diferentes commits y nosotros nos hemos ido involuntariamente moviendo de alguna forma y siempre estamos en la parte final de la rama pero sin olvidar que tenemos referencia y que podríamos ver
que tenemos Aquí vamos a hacer un nuevo cambio me voy a venir aquí a uno de mis ficheros al Hello git y voy a poner Hello New Hello kitch porque tengo cambios Imagínate que yo me he puesto a programar a programar a programar Pero esto no estoy seguro de querer hacer una fotografía querría Buscar qué he cambiado con respecto a la última fotografía que yo he hecho Pues otro Comando que yo puedo lanzar es git gif Perdona dejarme que limpie esto y voy a escribir git dice qué tenemos aquí pues nos dice Hey en el
fichero Hello kit ha desaparecido algo y ha aparecido algo en concreto ha desaparecido una línea y ha aparecido otra y nos dice qué es lo que ha desaparecido ha desaparecido una línea que decía print New Hello git y lo que ha aparecido es una nueva línea que hice New Hello sin llegar a realizar una fotografía Nosotros podríamos ver a medida que hemos seguido trabajando sin hacer una fotografía podríamos ver qué es lo que ha ido cambiando Ok entonces Esta es otra forma también muy importante de entender todo el valor que nos aporta git Cómo tenemos
un control absoluto de exactamente todo lo que vamos haciendo con nuestro código podemos ver algo antes de hacer la fotografía el Dif lo único que nos está indicando es con este -1 que ha desaparecido una línea y ha Aparecido otra esto es como indica que en realidad lo que ha habido es un cambio en esta línea el menos indica el cambio el más indica lo nuevo ahora lo que tenemos es el antes lo que teníamos en la última fotografía que sacamos fue New Hello it vale Ya algo más tenemos [Música] recordar el git log el
githdog nos indicaba Pues todo lo que teníamos aquí todo lo que hemos estado haciendo a medida que ha ido avanzando nuestro Proyecto Cómo creamos un primer fichero y ahí dijimos venga aquí que ya veremos lo que voy a hacer contigo y después seguimos trabajando hicimos vale lo que tenemos Ahora aquí está OK Vamos a crear otra fotografía que nunca se sabe Pero y si yo quisiera venir aquí en mi código por lo que fuera de alguna manera yo podría moverme antes como hicimos Para volver a un fichero que teníamos en la fotografía etcétera bueno vimos
algo así como el Git checkout Y si yo ahora le escribo el Hash este aquí dice aquí tienes algunas cosas que las podemos liar dice muy bien tú quieres moverte te gustaría irte al Estado de tu proyecto asociado a esta ID pero nos dice ey tienes cambios Si tú te vas aquí te estatus dice tú has modificado Hello git ten cuidado que si te mueves puede que Pierdas cosas que no has guardado que no has hecho fotografía Yo podría hacer antes de nada un git checkout de este fichero del Hello git.pai lo hago se resetea
lo tengo como antes y ahora vamos a movernos vamos a hacer un git checkout de este ID la hemos armado qué ha pasado recordáis que antes aquí había un fichero que era Hello kit 2 y otro fichero que era punto git noir que hemos hecho ya aparecen tachados en el editor Porque directamente se han borrado hemos vuelto ahora directamente lo que hemos hecho es que nos encontrábamos aquí y hemos vuelto aquí nos hemos venido para atrás pero hemos podido regresar a un estado anterior de nuestro proyecto exactamente a esa fotografía la que estábamos ya nos
tenemos que ir a la carpeta de Punto Final que creo que es ese lo que Tenía no no no me quiero mover aquí muy bien me puedo mover aquí Pero y si quisiera volver al principio que en realidad es como la parte más externa donde nos encontrábamos en el proyecto vamos a venirnos otra vez por aquí y vamos a hacer git checkout perdón y voy a escribir Head qué me hace este Head parece que este Head está bien no está bien lo tenemos ponemos git lock qué tenemos en el gildog ahora qué ha Pasado de
algunas formas Nosotros le podemos indicar dónde nos hemos o hacia dónde nos hemos movido Y dónde queremos indicar que es la nueva por ejemplo cabeza del proyecto yo le podría indicar Ahora que ahora mismo yo lo quise después pues me da un poquitito Igual yo donde me quiero situar es aquí porque lo que hice pues me equivoqué la armé muchísimo no sé ni qué hacer es un poco de lo que se trata todo esto ahora mismo si nosotros empezáramos a revisar el log Nosotros veríamos Incluso el git Tree que creamos antes vemos que el Head
es donde nos encontramos aquí nos encontramos pero veis donde nos hemos o dónde Hemos llegado de momento el log estamos aquí y la cabecera donde nosotros estamos apuntando como si fuera un puntero es en el primer cómic por eso nuestro proyecto está aquí pero imagínate que nosotros nos queremos ir al final de la rama pues qué tendríamos que hacer Simplemente me hago un git checkout y escribo esto dice Hey antes la cabeza estaba aquí en este es mi primer cómic pero ahora nos hemos ido aquí y si os recordáis el Hash era este gigante terrible
pero yo ahora solo he puesto este final es suficiente de momento nuestro proyecto puede identificar los cómics y nos podemos mover con estos cómics Únicamente con la parte final del Hash Qué es lo que nos pintaba nuestro log Nuestro log de alguna forma resumido y que incluso no tenéis ni que trazar todo el Hash porque os podéis mover con él Únicamente con este si ahora nos volvemos a este git Tree que nos dice ahora el Main el puntero que indica el final de nuestra rama está en el último cómic y el Head donde nos situamos
Nosotros también está en el último cómic en nuestro proyecto han aparecido Los ficheros que habían desaparecido en realidad el local en nuestra máquina en Nuestro ordenador aquí no tenemos un servidor no estamos hablando de nada remoto estamos hablando de todo ficheros locales si recordáis hablábamos de que git es un control de versiones distribuido nosotros en realidad en nuestra máquina tenemos una copia de todas esas fotografías pero el propio git es capaz de guardarlos de una forma que nosotros ni los vemos y estos ficheros git y Hello Kitty ignore y Hello kit 2 que parecía que
los habíamos Borrado en realidad estaban guardadísimos y en el momento que yo me sitúe en ese cómic de la rama han aparecido porque de verdad seguían existiendo solo que no estaban digamos creados en la raíz del proyecto donde nosotros queríamos ver si yo ahora vuelvo para atrás vamos a deshacer esto vamos a volver a hacer lo mismo me voy a volver al primer cómic vuelven a desaparecer me voy a ir al fichero Qué tenemos aquí no tenemos esos dos ficheros no es que se muestre decidas si los muestras que no es que los ha eliminado
de aquí pero en realidad este punto git los tiene guardados si tiene la referencias y él se encarga de eliminarlos de este directorio donde estaban o demostrarlos en el caso de que haga falta me vuelvo por aquí vuelvo al último me vengo para aquí y ya han aparecido Así de rápido y aquí los tenemos referenciados Esto es lo que significa al final trabajar con un control de versiones y movernos por una rama pero el concepto de Rama no es único pero sí que es cierto que el concepto de Rama es algo que ya Seguiremos viendo
en la siguiente clase Porque si nos basamos en ramas Y si nos basamos en cómics y hemos hablado del check out y hemos hablado de lo que tenemos el local y lo que va pasando de lo que está en nuestra máquina al área De stage y después nosotros creamos esa fotografía de nuestro código es son como los conceptos principales para trabajar dentro de una rama pero qué pasa si ahora empiezan a aparecer nuevas ramas si empieza a aparecer nueva gente que está desarrollando porque igual este proyecto estoy trabajando yo en él pero otras 10 personas
y cada persona pues tiene su código en su máquina y empezamos a hacer cosas Pues bueno eso es lo siguiente Que veremos en la próxima clase [Música] vamos a seguir aprendiendo comandos y aprendiendo nuevos conceptos separando todo Comando lo explico después otro Comando lo explicamos Y así vamos poquito a poco vamos con el primer Comando si nos vamos a esta memoria que dejé por aquí ya comenté algo de lo que podría ser el git reset Vale qué significaba el git reset Pues bueno era una forma en cierto modo de descartar Cambios o de decir Pues
mira yo ahora me quiero resetear y me quiero ir a una parte concreta y que no tengas en cuenta todo lo que se ha hecho después vale hay algo más duro nunca Mejor dicho que el reset que es el git reset Art vale Qué significa ese concepto del git hard os lo voy a contar ahora rápidamente si nos vamos aquí Nosotros ahora mismo nos situábamos al final estábamos al final de nuestra rama tenemos una rama que se llama Main y nosotros ahora mismo Estamos apuntando aquí ya sabéis que si yo me venía aquí a la
consola y ponía guitri que esto es un alias que creamos vale me dice que hay cuatro commits fijaos todos estos cuatro cómics Yo hasta sí que para que quede así súper entendible imaginaos me vengo aquí y metemos hasta los ides de los cómics imaginaos para que quede todo súper entendido esto Solo hago ahora al principio pero bueno por dejar así una referencia bonita a todo lo que Estamos haciendo tendríamos Aquí estos cuatro cómics que cada uno ya sabéis que tiene un ID y esta ID en cierto modo nos sirve para movernos entre ellos vale hablamos
de que el reset Al final nos sirve para resetear cambios o situarnos en un punto concreto de nuestra línea del tiempo que fuimos evolucionando este es nuestro código empezamos aquí y estamos aquí hemos estado haciendo cambios Y conviteándolos guardándolos de alguna Forma confirmando que esos cambios queremos establecer ahí un punto de guardado estamos al final pero imaginaos que yo ahora me doy cuenta y digo qué terrible todo esto mirar he creado esto y estos dos commits es que me he equivocado pero que no tiene ningún sentido lo que ha hecho tengo que venirme aquí dejarme
que mueva esta flecha tengo que venirme aquí y tendría Casi casi que eliminar esto porque en realidad me he dado cuenta que he metido Una pero terrible vale Esto es algo que sucede muy muy pocas veces pero que he llegado el caso pues bueno Puede que no nos enfrentemos a esto ya que Estuvimos viendo el concepto de guir reset vamos a ver lo que es el guide reset vale voy a poner git reset guit reset menos menos porque esto es un parámetro Art decir duro Y a dónde quiero hacer ese reset dijimos que nos queremos
venir aquí así que me Pillo está ID y se lo meto aquí y ahora Me dice ahora Head es decir la cabeza esto es el Head donde estábamos apuntando Cuál era el tramo final ahora está aquí el git de reset menos hard nos ha hecho eso es como si desapareciera todo lo que hemos hecho hacia adelante veis que incluso no tengo ni el git ignore porque el git ignore es algo que yo creé Después qué pasa que igual que hacemos el git reset menor hard igual podemos pensar me equivoqué hice un hard se me ha
ido La olla pero no lo quería hacer no quería hacer ese hard Cómo hago es que yo perdido lo que tenía después ala lo tengo que volver a programar tengo que volver hacia delante No necesariamente mirar tiene algo casi inamovible es que siempre que vosotros habéis comiteado un cambio eso está guardado puede que lo veamos Puede que no lo veamos yo ahora me vengo aquí a la consola y digo githlog y hago buah Pues Sí que lo perdí porque en el git log antes teníamos cuatro entradas y ahora tenemos dos la he liado pero fijo
que el Aliado no los tengo Acabo de entrar en el blog y no tengo absolutamente nada vale Pero tenemos otro Comando vamos a escribir por aquí git red log get the reloj parece que aquí hay alguna cosilla más este es el historial completo de Interacciones que hemos hecho en nuestro kit entonces aquí estamos viendo como que está el primer cómic y cómo vamos haciendo más cosas más cosas más cosas aquí otro cómic aquí el git noir recordáis Cuál era el último ID el cd7110 vamos a ver si hay algo cd7110 mirar hasta cuando no estábamos
moviendo por él es decir que en realidad justo antes de hacer este reset en el que movimos lo que es la cabecera la cabeza de nuestra referencia antes Teníamos este cómic si yo ahora directamente vuelvo a intentar irme a este punto por ejemplo haciendo git checkout me voy a este punto y me dice Uy Dónde está la cabeza igual aquí la estamos liando de alguna manera vale vamos a hacer git me dice algo así como que estoy en este punto Este es mi segundo cómic aquí es donde Está nuestro Main pero ahora el Head ya
está apuntando a otro lado nosotros ya estamos intentando movernos en algún otro lado vamos a intentar razonar esto si yo ahora git checkout para moverme a algún lado que antes lo hicimos it check out Main Y seáis cómo la estás armando a ver dónde estamos ahora hemos vuelto hacia atrás Uy igual estamos liando un poco no ahora en este punto vale parece que hemos Querido ir hacia adelante con la cabeza pero nosotros nos quedamos atrás y como que no estamos logrando Volver al punto donde estábamos antes qué hicimos en su momento hicimos este git y
un ID vamos a irnos a steire vamos a hacer gitlock ya tenemos otra vez 4 vale vamos a hacer git Tree ya volvemos a estar al final ya hemos recuperado otra vez todo esto que teníamos aquí y ya hemos vuelto a recuperar algo que pensábamos que habíamos borrado y ya el Head de nuestra rama Main ya se encuentra al final de todo lo que hemos hecho decir que simplemente con hacer un reset otra vez hard de el ID del cómic al que queremos volver es suficiente es decir ese reset funciona tanto hacia atrás como hacia
delante si quisiéramos conservar RS de atrás lo podríamos hacer y ya está no pasa absolutamente nada pero así nos podemos mover indistintamente desde un lado a otro vale entendido este concepto tenemos Nuevo concepto git reset con hard y también el git reloj que es como el log completo ya no únicamente de El log que simplemente es hasta donde apuntaría el Head de nuestro proyecto o dónde está el último cómic que oficialmente Nosotros hemos tenido en cuenta [Música] vamos a ir al siguiente Comando un comando que se llama Thor voy a limpiar esto lo limpio por
aquí y qué será un Tag Qué entendemos que es un tag Bueno pues un tag ya ya entendemos más o menos lo que es hablamos de tagear cosas hablamos de puntaje no sirve para hacer referencia a algo Tienes un término muy típico en programación Es un término que sin más significa etiqueta Vale pues nosotros a pesar de escribir o de tener un acceso a todo este log nosotros podríamos etiquetar cómics cuándo se utilizan los tags habitualmente Pues bueno los tags En programación se utilizan bastante cuando estamos haciendo referencias a que ese Son puntos importantes puntos
en los que de alguna forma queremos guardar esa referencia Cuál es el Cuáles suelen ser los tags de las aplicaciones Pues bueno los tags de las aplicaciones suelen ser las versiones nosotros lo que solemos hacer en git es vale esta versión todo lo que he subido hasta este punto es lo que va a conformar la versión 1.0 imaginaos de Nuestra aplicación pues yo creo un tag Porque creo un tag primero para yo verlo visualmente para en el momento que yo estoy revisando el log o el árbol un poco de todos los puntos que he ido
creando decimos Ah vale mira en este cómic justamente es donde yo he utilizado todo lo que teníamos hacia atrás para crear la versión 1.0 bueno nosotros no tenemos una aplicación como tal Ya que estamos escribiendo aquí unos ficheros para ir probando Cómo va esto Pero qué podríamos representar podríamos representar por ejemplo podríamos representar por ejemplo que tenemos un tag que hace referencia al día 1 a todo lo que hemos comido de alguna forma el día uno así que cómo Tendremos que utilizar un tag es tan fácil como que yo venga por aquí y diga git
tag y voy entrecomillar por ejemplo aquí o sin más decir por buena práctica los tags deberían ser todos en minúsculas y como mucho poner ahí Guiones bajo Así que voy a poner aquí clase 1 o clase 1 sí nos da igual bueno clase uno yo creo que podríamos hacer vale entonces con esto pulso a enter ha pasado algo pues creo que no ha pasado nada vamos a hacer it log vemos algo diferente vemos el último cómic que dice que nuestro Head dice que es la rama Main que está en este punto aquí nos situamos Head
es como un puntero A dónde estamos trabajando nosotros estamos en la rama Main y ahora nos dice aquí tag clase 1 podríamos Añadir más de un tag en realidad esto significa algo así como que ahora Nosotros le hemos puesto un nombre identificativo a este punto que es clase 1 imaginaos tag clase 1 esto es bastante importante porque porque acabamos de representar un punto muy concreto vamos al aquí lo veis clase 1 imaginemos que ahora nosotros Seguimos Avanzando voy a avanzar cómo estábamos Hello kit voy a crearme otro nuevo fichero voy a crear aquí otro nuevo
fichero que se va a llamar Hello git 3 y voy a decir Hello i3 Por qué Porque voy a seguir trabajando con algo bueno así refrescamos la memoria también de la primera clase de las lecciones anteriores que teníamos que hacer teníamos que ver un poco Cuál era el estatus Cuál es el estado de nuestro Repo ahora mismo y un estatus nos dice Hey el fichero hello3 aún no lo has versionado no has hecho nada venga Hazlo un Guitar no sé si lo vimos en las clases anteriores pero si hacemos git at podíamos Añadir únicamente el
fichero pero imagínate que yo ahora me he puesto aquí a trabajar a picar como un loco y tenemos 50 ficheros qué tengo que ir añadiendo fichero fichero fichero fichero fichero fichero no si yo hago git at punto Esto me está representando Que venga añade al área de stage todo lo que tengas pendiente Si yo ahora me voy aquí de estatus ya vemos que hay un nuevo fichero que ya lo ha añadido con el git punto ya no tengo que ir de 11 así de fácil una vez ya teníamos esto ya sabéis venga Confirmamos está todo
Ok esto pues vamos a confirmar este punto vamos a hacer esta fotografía este snapshot hago git commit menos m y aquí le pongo un mensaje bueno mensajes vimos un montón y voy a Decir aquí Este es mi quinto cómic antes lo hicimos vale hago esto ya tenemos un nuevo fichero y esto Qué significa que ahora mismo yo tengo algo más aquí ya tenemos otro cómic otro cómic en realidad con un ID esta ID que vemos aquí ya tenemos una referencia ahora este y el Head lo que era el Head ahora está aquí Kitty hemos seguido
avanzando fijaos el Head se ha movido el final de la rama Main se ha movido pero que se ha mantenido este Tag porque hasta aquí es todo lo que teníamos de la clase 1 esto ya ha dejado marcado de una manera muy clara que ese punto es importante o que yo por lo menos he decidido que es importante que ahora yo no tengo claro a dónde me quiero mover Pero sí que me acuerdo que hay diferentes tags no sé si yo pusiera aquí git tags qué pasaría mirar dice Uy git Tags no hace nada y
git tag qué podría hacer aquí tenemos el listado de tags cuáles son los tags que tengo creado en mi repositorio únicamente uno clase 1 cómo nos movíamos entre diferentes commits decíamos algo así como el git checkout tenemos el git checkout vamos a desplazarnos entre tags tax barra y el nombre de mitad Cuál es el nombre de mitad clase 1 Esto me servirá me dice Uy que he puesto aquí check out y ahora me está Diciendo Hey ahora teóricamente te has movido vamos a git dónde está el Head tenemos el Head en el tag nos hemos
desplazado rápidamente a un lugar concreto que no tenemos ni que saber el ID este u ID que tendríamos que buscar Navegar no no venga Si yo sé que tengo los tabs bien establecidos nos podemos mover rápidamente por qué imaginaos esto ya lo veremos mucho más adelante Pero tengo una versión tengo un error en la versión 1.0 lo tengo que corregir pero he seguido trabajando lo quiero corregir sobre esa versión me muevo desde ahí lo soluciono claro Esto es para establecer diferentes flujos de navegación de que igual yo me quiero ir a algún lugar concreto arreglar
algo concreto y después seguir trabajando pero sigue igual tener en cuenta todo lo que yo he hecho yo quiero arreglar algo que hice cuando tenía estos dos ficheros pero no quiero el Hello gi3 que es algo que cree A posteriori Vale entonces para algo creamos los tags y son como puntos concretos que subimos la versión 1.1 hay un Pet en producción terrible no sabemos ni cómo arreglarlo nos va a llevar tiempo vale pero la versión 1.0 sabíamos que funcionaba nos vamos a saltar igual ese tag de la 1.0 es lo que acabamos desplegando nosotros en
producción vale Y así tenemos como esos puntos importantes también marcados que queremos volver Bueno pues queremos Volver simplemente con hacer un git checkout del Main ahora ya volvemos a estar otra vez al final ya estamos correctamente en el punto que de verdad nos hacía falta vale nuevo concepto visto reset reset hat y la parte del y la parte del tag hay otros conceptos pero no creo que no quiero explicarlo o por lo menos de momento igual que teníamos el reset igual a alguien le puede sonar El Comando reverb vale el comando River para lo que
sirve Para eliminar un cómic concreto algo así como si nosotros tuviéramos el esquema y sé que lo que yo he comido aquí no vale para nada pues como que me lo quiero cargar y Quisiera hacer algo así no es algo que se suele utilizar mucho es un comando que puede ser algo peligroso Vale entonces en principio apuntaros si queréis Buscar información sobre River pero ya digo es un concepto ya un poquito más avanzado porque lo que hace es se carga un cómic y crea otro Cómic delante con los cambios que hemos hecho ya digo es
un concepto un poquito más avanzado No me creo que no es buena idea meterlo ahora mismo aquí pero con que os quedéis a nivel teórico de cómo funciona por si algún día decides venga me sonaba que había algo para limitar para eliminar hay un cómic por el medio porque me hace falta No sé qué bueno que sepáis que existe rivert ya que hablamos de reset pero reset cómo lo hace todo en bloque Pues creo que se entiende un Poquito mejor Aunque el reset menor Heart es bastante No sé jugarsela bastante También utilizarlo tenemos que estar
muy seguros de cuando utilizamos reset o utilizamos River [Música] siguiente concepto entramos en lo que yo creo que es el grandísimo concepto de git ahora mismo hemos trabajado así Esto está bien quizás si estamos trabajando solos muy bien tenemos más que Localizado nuestro trabajo podemos ir guardando cuando queremos podemos ir desplazándonos podemos ir revisándolos hemos visto un montón de cosas pero todo siguiendo una misma línea una línea de algo que yo he llamado rama Main Por qué Porque git funciona en torno a ramas igual que esto vemos que es una rama como que va creciendo
hablamos del concepto de ramas por qué porque podemos tener algo así que empiecen a surgir ramificaciones como tal Hay ramificaciones como tal muy bien Vamos a ver qué significa esto de las ramas para el comando que se va a encargar de trabajar con ramas tenemos que dejar Clara una palabra esto a base de trabajar con os van a ir sonando Así que tampoco os preocupéis si creéis que hay no me acuerdo de todo que si era cómic que si era que si era no bueno no os preocupéis simplemente con ir haciendo poquito a poco hay
como cuatro o cinco comandos que son los que más se Repiten y que Vais a aprender muy muy fácil vale aquí entra el concepto de Rama que en git a nivel de comando como tal lo que acabaremos teniendo es el concepto de brunch que directamente significa Ram vale no hay más marquemos este punto de entrada el concepto de Rama Cómo crearemos una rama en git y Qué significa crear una rama muy bien Vamos aquí tenemos nuestro nuestro último cómic nuestra línea del tiempo siempre Sigue avanzando hacia Delante aunque nos podamos ir hacia atrás en realidad
vamos hacia adelante vale siempre hacia adelante siempre un cómic nos lleva hacia adelante hacia adelante hacia adelante Qué significa una rama una rama es el concepto que nosotros utilizamos cuando de verdad queremos empezar a hacer algo que no tiene sentido que trabajemos en la rama donde nos encontramos después entrará el concepto de flujos de ramas ya veremos también lo que es eso vale Vamos a Ponernos en una situación Yo tengo mi rama principal esta rama principal donde lo que tengo me parece Okay pero imaginemos que yo ahora me quiero ponerme a trabajar en una funcionalidad
una funcionalidad que no sé cuándo voy a acabar y que yo quiero seguir evolucionando esta rama principal y cuando ya tenga esa feacher esa funcionalidad Pues de alguna manera ya veremos Cómo volver a integrarlo en esta rama principal vale Imagínate que yo Quiero empezar a trabajar en una funcionalidad para Añadir un login a nuestra app entonces yo voy yo quiero empezar a trabajar en una funcionalidad muy concreta una funcionalidad que le voy a llamar login login pero yo no quiero que el trabajo del login se mezcle con lo que yo tengo en el Main Así
que simplemente me voy a venir por aquí y voy a escribir git Branch y le vamos a dar un nombre a la rama la rama la que Trabajamos se llama Main Vamos a darle un nuevo nombre le voy a llamar login qué ha pasado es decir teóricamente he creado una rama que se llama login tenemos un nuevo flujo establecido Pero dónde estoy yo me lo está indicando aquí yo sigo o si nos vamos al ojo si nos vamos al Tri yo ahora mismo mi cabeza mi Head sigue apuntando en Main Yo sigo la rama Main
pero en este punto parece que se ha creado un login cómo me moveré a esta nueva rama que acabo Crear pues es tan fácil como que yo escriba git switch y aquí voy a escribir el nombre de la rama login fijaos lo que ha salido por aquí yo antes estaba en Main Ahora me encuentro en login pongo el tri y que dice el Head mi cabeza es decir donde yo voy a trabajar ahora es en la rama login con lo cual esto se representaría como algo así de repente ahora tenemos una nueva rama Y por
qué tenemos esta nueva rama o cómo se ha creado esta nueva rama la hemos creado a Partir Vámonos aquí incluso queremos ver el log aquí seguimos en lo mismo es decir a partir de este cómic yo ahora mismo tengo una rama donde la referencia es esta tengo un nuevo flujo de trabajo pero que digamos lo que yo tengo en este punto es todo lo que yo ya tenía en la rama principal pero ahora lo que va a surgir de aquí es que yo voy poder empezar a trabajar en un flujo distinto en otras ramas vamos
a entender Qué significa esto voy a Venirme por aquí aunque no entendamos Aunque es esto de Rama dijimos que íbamos a trabajar en el concepto de login Bueno pues me voy a crear un nuevo fichero y le voy a llamar login.pike porque yo voy a trabajar aquí en el login y aquí como no tengo un print que me va a decir porque yo voy a trabajar en el concepto de loki sin más muy bien Yo sigo como estábamos hasta ahora he creado un nuevo fichero imaginemos que esto es la Implementación del login o que es
el comienzo de la implementación del login vámonos estatus bryce tienes un nuevo fichero Ok Guitar y lo voy a cometer git commit mensaje y voy a decir login se ha subido ya está esto ya está bien git status no tengo nada pendiente ok En qué ha derivado esto en un nuevo ID en un nuevo cómic Dónde estará este commit en esta rama login o en esta rama Main esto ha Derivado en que yo ahora mismo tengo esto una nueva bolita un nuevo cómic un nuevo ID donde está el ID este por aquí dejarme que duplique
esto para que lo veamos muy claro el ID es este de Aquí yo estoy trabajando de alguna forma ya independientemente de la rama Main estoy en la rama login vamos a hacer un git lock por ejemplo Vale tengo un cómic en login OK Vamos a hacer un git tree vemos esto hay un nuevo cómic en login Ok hasta aquí vamos a hacer una cosa me voy a cambiar de Rama cómo nos cambiábamos de Rama vamos a hacer un switch de la rama igual que hicimos un switch de la main a la login ahora voy a
hacer un switch de la login Alain a la otra rama switch Main me he ido a la rama Main nuestro Head se fuera para aquí al login y cuando hicimos el nuevo cómic se fue para aquí Dónde estará ahora el Head puedo poner así es rojo para que se vea mejor nuestro Head que Ahora estaba aquí le hemos dicho Cámbiate a la rama mail cámbiate al final de la ramain Dónde está el final de la rama Main aquí nuestro Head ahora apunta aquí que teníamos en este último cómic de la rama login teníamos un fichero
que le habíamos llamado login.pike dónde está ese fichero no está por qué no está porque la rama Main nosotros no tenemos ese fichero nosotros estamos trabajando de una manera independiente con esto te puedes Mover con el check out sí no es lo más correcto o no está pensado Exactamente para eso tampoco en realidad para movernos de ramas podremos hacerlo con lógico un check out por un check out de realidad es la descarga de esos cambios no es movernos entre ramas decir si no tuviéramos descargada la rama con el switch no nos podíamos mover la tendríamos
que tener antes descargada o algo así vale como nosotros tenemos todo local pues lo podemos utilizar Indistintamente pero un checkout de realidad se refiere venga primero Tráete los cambios vale Solo que lo que te hace también última instancia es desplazando desplazarte a ese punto Entonces ya tenemos dos flujos diferenciados del trabajo uno en el que estoy trabajando en el login y esto ya nos da la siguiente clave esto no significa que esté trabajando yo los proyectos de software en muchos casos son colaborativos Esto significa que puede estar otra persona trabajando o lo que aún es
mejor puede estar un equipo pensar cómo funcionan las aplicaciones grandes las aplicaciones grandes estamos hablando de que cómo funcionará Twitter ahora no que han despedido a todo el mundo pero cómo funcionará otra aplicación la de YouTube Pues que igual hay un equipo de cinco personas trabajando en una funcionalidad y otras cinco personas trabajando en otra Funcionalidad y otras cinco personas trabajando en otra y eso en que puede derivar que puede ser una rama de una rama de otra rama de que igual un equipo empezó a trabajar aquí otro equipo empezó a trabajar aquí otro equipo
empezó trabajar aquí Y eso significa que nuestro sistema que era único con nuestra rama Main ahora se empieza a dividir y cada persona puede ir haciendo lo que nos dé la gana hay un equipo en la rama Main Y entonces la gente de la Rama Main pues va a hacer algún cambio aquí no tenemos el login no tengo ni idea desde la rama Main que alguien está trabajando en implementar un login en nuestra aplicación entonces este Hello i3 ahora voy a decir por aquí Hello kit 3 v2 porque le estoy cambiando cosas Bueno pues vamos
a irnos por aquí y voy a decir git punto git commit menos m y voy a decir i3 v2 lo subo ya está perfectamente Genial esto en que acaba derivando en un nuevo cómic nuevo commit donde estamos en la rama Main avanzamos hacia aquí pero avanzamos en el tiempo más tarde de lo que ha sido el último cómic en la rama login Pero esto que veíamos aquí que se ramificaba yo ahora sigo en la ramain me voy a otro commit Dónde está el Head ahora el Head se viene por aquí y acabar esto acabará dando
otro ID otro ID que ya no estaba diciendo por aquí la Consola que es el id un equipo login un equipo en Main cada uno haciendo su juego cada uno haciendo su vida aquí no tenemos ni idea de lo que está pasando en cada uno de los lados me vuelvo a la otra rama donde teníamos git switch login [Música] Qué es lo siguiente que podemos ver los equipos han seguido trabajando Pero ha llegado un momento en el que yo quiero saber qué es lo que está haciendo el Otro equipo porque imagínate igual han pasado horas
pero han podido pasar días y yo quiero seguir Sabiendo si lo que ha hecho el otro equipo que está la rama Main en la rama principal tiene a un soporte con lo que yo estoy haciendo porque igual han cambiado cosas y yo quiero saber o quiero asegurarme con que lo que hay en la rama Main sigue siendo compatible con lo que yo tengo en mi rábaloging para ir manteniendo estos flujos Actualizados de alguna manera decir yo ahora lo que quiero es todo esto que hay aquí que yo me he movido otra vez de nuevo este
punto lo que me gustaría es tener estos datos estos datos en que se traducen que yo había modificado ese fichero y la había puesto v2 vale le había puesto v2 porque él había puesto v2 para saber que había un cómic nuevo vale pero yo esos cambios no los tengo aquí mi fichero Hello git 3 sigue poniendo Hello i3 no Hello kitv2 muy Bien Vengo por aquí Cómo tendría la manera de saber qué está pasando aquí y de estos datos de alguna forma reflejarlos en otra rama la que yo no estoy trabajando para así mantener la
coherencia Pues aquí entra nuevo comando que cuando estamos trabajando con ramas el siguiente Comando que debemos utilizar es lo que se llama el merge es lo que castellanizado solemos decir mergear decir de alguna forma combinar los Cambios Yo estoy en la rama login voy a escribir git merge que se escribe merge y cuáles son los cambios que me gustaría tener aquí los cambios que me gustaría tener aquí son los cambios que hay en la rama maint vale Ahora vengo por aquí hago git merge Main que está diciendo la gente fusionar adjuntar nos puede valer vale
Solo que yo creo que o por lo menos yo ella ha caído en el en el término es inventado que es mergear y digo mergear Siempre Vale y lo escucharéis mucho También eso vale escribimos esto git merge Main enter y nos dice Uff Qué pasa aquí tienes que escribir algún cómic para decirle que esto está Guay lo que sea vale Bueno lo podemos dar como Bueno le podemos decir Hey para mí esto me puede valer lo di como Ok me ha valido ese merge o de alguna forma y ya veis lo que vamos a tener
aquí de repente en la rama login donde yo tengo mi fichero login ahora el fichero gi3 ya no Tiene Hello git 3 tiene Hello kit 3 v2 Qué significa esto que de alguna manera yo me he traído estos datos para aquí vale Cómo se representa esto Vámonos al estatus o Vámonos al log Yo sigo en el login parece que hay un merge Branch Main intologing Qué significa esto que he combinado la rama Main dentro de login y no y ha funcionado correctamente porque ya hablaremos del concepto de conflicto que será lo siguiente tengo Esto kit
Tree esto ya empieza a pintar un poquito más bonito el git Tree que antes veíamos solo asteriscos ya empieza a representar algo y ya vemos que se parece un poquito a lo que yo estoy pintando Cómo estamos en una rama por aquí el Main nos lo pinta por aquí quedaos el mail no lo está haciendo recto pero yo creo que se entiende mejor como lo estoy haciendo yo y como ahora estamos en el Head Hemos seguido avanzando por aquí y vemos que el Main ahora como que tiene otra vez otra flecha que nos vuelve por
aquí Qué significa esto que ahora tenemos un nuevo cómic un nuevo cómic dentro de login me vengo por aquí en el tiempo más adelante de donde hicimos el último cómic en el Main Hemos llegado hasta aquí pero Hemos llegado hasta aquí se ha colocado el Head aquí hemos generado un nuevo ID Perdón que lo he Puesto aquí bastante cutre vale tenemos este nuevo ID Pero cómo hemos generado esto esto lo hemos generado Gracias a que hemos emergeado los datos que teníamos del Main ahora los hemos pasado al login hemos generado un nuevo cómic Sí pero
hemos generado un nuevo cómic Gracias a que los datos que teníamos aquí en el Main ahora los hemos pasado al login por eso lo tenemos actualizado Ok esto aquí en realidad lo que estamos Representando es un merge voy a poner aquí esto ha significado un merge nos guste o no hemos traído los datos y siguen siendo coherentes [Música] ahora es donde entra lo difícil los merch que funcionan pues genial Pero y los merch que no funcionan vamos a ver lo que es el gran dolor de cabeza cuando estamos empezando a trabajar con ramas y cuando
estamos empezando a trabajar con Git que es el concepto de conflicto vamos a hacer una cosa me voy a venir por aquí este git 3 v2 yo me he metido un poco donde no me llaman y le he puesto v3 o le he puesto vlogging para que nos demos cuenta de dónde estamos yo le he puesto vlogging muy bien Vamos a cometerlo guitart menos m y digo por aquí como le llamamos a esto git 3 login lo subo el equipo de login ha decidido meterse en este fichero que en principio Yo tenía que estar trabajando
en el login no sé qué leches hago tocando en ese Hello kit 3 que bueno teóricamente eso estaba trabajando el equipo de la rama Main volvemos a la rama Main me vengo a la rama Main desaparece el login porque la rama Main no tiene ni idea de lo que está haciendo la gente en login recordar que lo que hicimos fue mergear lo que hay en el Main en la rama de login por eso el login tiene los cambios de main pero la gente de main no tiene Ni idea de lo que hay en la rama
en login por eso la gente de main ahora se viene por aquí dice Hello kit v2 pasa a ser v3 porque ellos estaban trabajando en este fichero eran una funcionalidad que estaban implementando guitar y este git login git 3 pasa a ser v3 lo comité ahora mismo esto ha derivado en que yo tengo un nuevo cómic por aquí y otro nuevo Cómic por aquí recordarlo hicimos un cómic para tocar un fichero y otro cómic para tocar otro fichero han seguido los equipos evolucionando y ahora me voy a volver a la rama de login ya no
pongo ids porque no importa como tal vale el switch Es únicamente para cambiar de Rama el checkout sirve para más cosas para cambiar de Rama la buena práctica es un switch el switch solo hace switch el checkout hace más cosas que puede ser solo cambiar de rama pero puede tener Otros cambios colaterales si nos encontramos en otras situaciones hemos seguido evolucionando pero que hemos hecho en este caso me vuelvo otra vez a la rama de login y vamos a volver a hacerlo de antes ya digo no pongo aquí ID ID Para no perder tanto tiempo
y porque se entiende que seguimos evolucionando vamos a ver el siguiente punto Qué es que quiero hacer exactamente lo mismo que antes yo he seguido trabajando en el login bla bla Bla Quiero ver a ver cómo está la rama Main vamos a ver cómo está la rama Main Así que voy a hacer git merge Main Qué miedo eh esto parece que no ha funcionado antes ya sabéis que hemos lanzado el merge todo funcionando correctamente Se trajo los cambios nos metió Los ficheros todo fantástico nos dice Uy conflicto hay un conflicto en Hello kit 3.y Por
qué Porque tanto la gente que está en la Rama Main como el equipo de la rama login han tocado el mismo fichero y el problema no es que hayan tocado el mismo fichero es que han tocado la misma línea de código Y qué haces tocando en mi código Por qué vale guita es muy listo quites un sistema muy listo y que ha hecho mira aquí hay un conflicto no tengo ni idea si lo bueno es lo de la gente de main o lo bueno es lo de la gente de login Pero yo no te voy
a permitir hacer un merge Mientras nos Aclaréis si tocara en líneas diferentes del código en el mismo fichero funcionaría bien porque cada uno su bola pero claro aquí han tocado la misma línea de código Y eso significa que hace un equipo tocando una línea de código después otro equipo tocando la misma alguno está haciendo lo que no debe o eso suponemos no porque deberían ponerse de acuerdo y sincronizar esos cambios de alguna manera y decir Oye lo toco yo que Lo voy a hacer yo el cambio o lo tocas tú lo que sea qué en
qué se traduce todo esto Cuál es el fichero que tiene conflicto el fichero que tiene conflicto es hello kit 3 nos vamos a Hello kit 3 mirar lo que nos dice el editor qué nos ha hecho el editor pues nos ha pintado las dos posibilidades nos ha dicho venga aquí hay conflictos Pero yo no te voy a dejar subir esto tú no vas poder hacer un cómic de esta Porquería Así que aclárate y soluciónalo Con qué te quieres quedar con lo que has hecho tú que es git 3 vlogging o con lo que ha hecho
el equipo de la rama Main vemos que aquí nos lo pinta Head current change yo Main lo que tiene la gente de main es hello kit 3 v3 con cuál te quedas y yo ahora aquí me doy cuenta ostras este es un fichero del otro equipo yo no tengo porque estar cambiando esto Si la gente le quiere Poner el auditor v3 Yo creo que es lo correcto me lo guardo he llegado a a no sé a algo por lo menos me he dado cuenta que quizás yo lo hice mal nos vamos a quedar con lo
que había hecho el equipo de Main Cómo acabamos resolviendo este conflicto de alguna manera aunque como es la manera de decirle aquí de que Hey ya lo tengo Claro ya he tocado el fichero ya lo he dejado como yo lo quiero tener esto no quiere decir que le estemos Tocando su fichero el fichero de main no le podemos hacer nada pero sí que hasta el momento nos intentamos traer los cambios de Maine pero no hemos finalizado el proceso nos hemos quedado como a medias vale puedes hacerlo con git check out dates efectivamente podemos indicarle ya
directamente de venga quiero traerme los cambios y quédate con los suyos me da igual lo que haya hecho yo Arréglalo No pasa nada vale puedes Hacerlo directamente con ese Comando también se puede hacer ya sabéis comandos en git hay infinitos pero yo quiero que aquí entendáis desde las bases que es lo que está pasando Y qué cómo lo estamos razonando es resolver un conflicto como tal porque a veces son muy simples y otras veces pues hay que ponerse ahí con el código a fuertemente aún así es un sistema pensado para que existan los menos conflictos
posibles si tocamos dentro del mismo fichero eso no Va a ser un conflicto Aquí he forzado yo el conflicto porque me he tocado en la misma línea claro eso es armarla mucho No pero si los equipos están bien dirigidos conflictos no debería haber muchos yo he trabajado con equipos grandes y casi nunca hay conflictos y cuando hay conflictos pues iguales por algo muy concreto y se resuelven súper rápido digo si de verdad estáis en proyectos en donde hay muchos conflictos Ahí es para sentarse a debatir que Leches estáis haciendo y porque hay tanto conflicto ya
ha llegado a una corrección que yo creo que podría ser la correcta Qué es lo siguiente que tenemos que hacer para acabar solucionando el conflicto Pues bueno Yo creo que ahora que ya tenemos todo esto voy a intentar hacer un cómic voy a hacer un cómic voy a hacerle un menos m y le voy a decir corrección conflicto lo voy a lanzar y me dice Uy igual esto no vale No porque Quieres hacer un cómic si tú si revisas el estatus me dice tú has vuelto a Modificar el fichero Hello kit aún estamos en el
proceso de merge añádelo quitad añado El fichero vamos a intentar ahora hacer el cómic ahora sí Cove login ya se me ha puesto aquí en verde vamos a revisar cómo está el proceso vemos que ha desaparecido aquí la admiración que no estaba indicando que había algún problema vemos el estatus parece que todo está OK vemos el Log y vemos que ya estamos aquí con la corrección del conflicto yo llamé puesto de acuerdo para que con este nuevo cómic que en realidad lo que está representando es un merge otra vez de nuevo desde el Main aquí
teníamos un merge un conflicto más un merge lo hemos solucionado lo volvemos a tener correctamente aquí y el Head lo tenemos aquí ya hemos corregido un conflicto volvemos a estar totalmente actualizados [Música] Me vengo aquí al login Entonces igual yo seguía trabajando login no sé qué login v2 porque yo me he puesto a hacer cosas y hora de repente nos llega una llamada y nos dice bryce tienes que venir a echar una mano porque hay un código que tú hiciste en la rama mail lo tenemos que corregir sobre ella porque es muy importante y no
tenemos ni idea cómo cambiarlo Vale pues Ahora vamos a entrar con otro concepto otro concepto que es el stash claro qué podríamos hacer pues No tranquilos voy a intentar cambiarme a la rama Main ya que me estás diciendo que ibrais vete Alain que tenemos que hacer algo pues yo hago bit switch Main y me dice dónde vas es decir tú te quieres cambiar de Rama estás en la login pero tienes un fichero que has cambiado que es login.piy que yo lo he cambiado y le he puesto v2 y aún no has hecho cómic si de
verdad te largas de esta rama vas a perder todos los cambios que tú has Hecho y le quites un sistema muy muy listo que no nos permite nunca perder cosas dice no te puedes ir no te voy a dejar ir pero claro yo en realidad lo que hice es que me pillaron en medio de un desarrollo y yo estaba haciendo aquí pues Pues un poco una no que yo he dejado esto implementado con errores y yo esto no le puedo hacer cómic porque claro Hay que hacer cómic de código que funciona o habitualmente es lo
correcto si yo estoy en un punto así yo no quiero Hacer un cómic de un código que no va a funcionar Porque después llega un compañero a este código no funciona no sabe por qué no funciona y no sabe por qué Hemos llegado a este punto para eso es para lo que tenemos El Comando stash El Comando stash no sirve para decir vale guárdate esto que ya continuaré trabajando aquí no quiero que hagas cómic pero sí que de alguna manera me lo almacenes temporalmente me vengo por aquí hago git stage fijaos y Cómo se Escribe
hago git stage que de hecho no sé si esto ya me lo debería comentar aquí no lo dice voy a hacer git checkout check Ah pensaba que la ayuda te lo decía de alguna manera bueno no pasa nada git stage esto significa hacer un cómic pero de una manera temporal que solo queda reflejado en tu local y que eso no afecta al árbol es decir voy a hacer un stash pero ese estás no genera un nuevo cómic decir que es algo que solo voy a Saber yo hago git stage y dice vale Te has guardado
en el estado working progress Aquí sí esto Ahora ya me permitiría cambiar Quiero ver a ver que tengo los stash hago git stage list y me dice Hey tienes algo por aquí pendiente Acuérdate de él muy bien pero yo me voy a la rama git switch Main ahora me deja cambiar ahora sí me deja cambiar yo me voy a la rama Main hago lo que tengo que hacer Bla bla bla lo que fuera nos da un poquito igual acabo mi trabajo en lamen y ahora lo que puedo hacer vale Ay mira si lo decía aquí
Peace commit Menos mal que lo habéis dicho que me he puesto a leer aquí arriba piscombrillos change o stash them before you switch branches Vale dice venga comité a los cambios o manda los estás No hecho esto me voy a la ramain hago lo que tenga que hacer he acabado vuelvo a la rama login me vengo a la rama login claro me vuelvo a la Rama login me voy al fichero y esto me dice Hey estás en la rama login Pero esto no es lo que yo hiciera estás os acordáis que yo pusiera login v2
vamos a ver si tengo algo en stash o vamos a hacer otra cosa voy volver a la rama Main voy a hacer git stage list me lo sigue diciendo que tengo algún stash por si yo quisiera aún trabajar con él muy bien salgo me vuelvo a la rama login y te estás listo Aquí lo tengo Perfecto Cómo hago para recuperar de alguna forma lo que yo he guardado de forma temporal pues puedo hacer git stage pop ir recupérame tráeme todo lo que yo te deje guardado ahí para cuando volviera a trabajar con ello y me
dice Hey que tú has cambiado algo por aquí Pues no lo sé vamos a deshacer esto qué tenemos qué tenemos por aquí Cuál es el stage ya lo veis dice Hey he restaurado esto Cuál era el Punto en el que dejáramos el stage Pues bueno dejáramos Esto diciendo v2 y encima con un error yo ahora acabo mi trabajo y ya puedo ir a lo a mi bola git at it y digo login v2 lo comité o ya está sigo trabajando con ello y ahora hago git oiloging v3 que me vuelven a llamar me tengo que
volver a cambiar no hay problema hago git stage ya lo tengo guardado de forma temporal me vuelvo a Otra rama vuelvo para aquí yo que sé me ando moviendo lo que hiciera falta si yo me voy a la lista veo que ahora tengo un nuevo estás guardado pero resulta que yo al final cuando acabo regresando yo digo Uy Eso lo que estuve trabajando en realidad no me lo quiero guardar creo que no tiene mucho sentido que yo trabaje con todo eso pues yo podría incluso eliminar ese stash tan fácil como que hago git stage Drop
y me cargo lo que tengo metash y me Vuelvo a donde estaba yo antes en ese login v2 lo que fuera vale en el punto en el que a mí me diera la gana donde me hubiese quedado antes se entiende un poquito todo esto tiene trabajemos de forma temporal si nos tenemos que mover con los stash si no obviamente si ya lo tenemos correcto pues lo vamos comiteando ya hemos corregido un conflicto volvemos a estar totalmente actualizados [Música] Vamos al siguiente concepto hemos visto el merge en esta rama hemos visto los stash también cuando igual
nos tenemos que estar desplazando entre ramas y está pasando algo por el medio acabo el login yo ya tengo implementado farme yo ya tengo todo perfecto he acabado de implementar El login y yo ahora le digo a mis compañeros Hey venga yo creo que ya podemos meter el login en la rama principal Ya tengo todo absolutamente Pues muy bien me voy a la Rama principal git switch Main en la rama Main no teníamos la implementación del login igual que yo puedo que pude hacer un merge en la rama login de lo que yo tenía en
el Main yo puedo ahora mismo aquí donde tenemos la versión final del login Yo podría decir bueno que que en realidad hemos hecho esto que aún hemos hecho aquí un cómic más para hacer la v3 lo que fuera no importa hemos hecho algo más muy bien pero yo ahora les digo a la rama principal que Es donde está lo bueno o donde yo me quiero quedar porque igual es la rama que es lo que pasa producción lo que estás en esta rama hemos decidido qué es lo que va a pasar la producción Pues yo ahora
les digo Mira ya está acabado de implementar El login quiero meterlo en esta rama quiero meterlo en esta rama nosotros antes hemos hecho un merge de lo que había en esta rama esta rama qué Tendremos que hacer ahora y ya tenéis conocimientos de github y ya tenéis Conocimientos de The flows Esto no es lo que no es lo que haremos pero en Concepción inicial vamos a explicarlo de esta manera después lo evolucionaremos y veremos que no lo Tendremos que hacer de esta manera pero con los conceptos que hemos visto y teniendo en cuenta que todo
Estamos hablando sobre un supuesto de Cuál es la rama principal y cuál no la es ahora me gustaría de alguna manera decir por qué no pillamos esto y ahora el merge en vez De hacerlo de la rama principal en la login porque no hacemos un merge la rama login a la rama principal así todo lo que está en esta rama yo puedo intentar llevármelo para aquí tenemos conflictos Yo diría que no vamos a verlo cómo sabemos si tenemos conflictos Cómo sabemos si puede haber algún problema nosotros tenemos un comando que se llama get Dif que
creo que ya lo hemos visto para saber si de verdad tenemos algún Problema nosotros podemos hacer git gif con ficheros para decir mira en este fichero ha cambiado algo con lo que yo tenía antes con lo último que he hecho yo cómic o lo que sea pero el git gif también nos vale Para comparar ramas entonces si yo ahora mismo Estoy en el Main y yo hago git gif login esto hará algo y nos dice Ah pues sí la verdad es que la rama login Tú tienes cosas has añadido un esto No tenéis Por qué
entender la nomenclatura de buenas a primeras Pero bueno lo que nos está diciendo algo por aquí es que en realidad tenemos este fichero login tenemos un fichero login en remoto que nosotros no tenemos aquí y que dentro lo que tiene es este print que dice login v2 vale decir Ah vale Sí que la gente de la rama login tiene cosas distintas a las que yo tengo vale me interesa Me lo voy a traer git merge login de repente en la rama Main que es Donde nosotros nos situábamos ahora tenemos un fichero que dice aquí login
Parece que ya está quita estatus nos dice que está correcto qué tenemos aquí pues parece que esto está bien guit status perdón y de estatus he cambiado el login porque he guardado en esta línea en vez de esta lo que fuera vale imaginaos que yo me pongo aquí a tocar y por eso lo tengo modificado que le quiero dar para atrás ya sabéis podemos descartar de alguna manera los cambios Que yo tenía por aquí cómo lo podemos hacer vamos a probar la potencia del git checkout y check outmain algo así pum me he venido aquí
al Main aún me sigue diciendo que está modificado estamos en la buena no puedo descartarlo de alguna forma como hemos dicho que queremos descartar cómo lo podemos hacer Cómo podemos descartar cambios de alguna manera el check out es un comando muy versátil si yo ahora mismo hago un checkout de Login.pipe yo ahora mismo vuelvo a dejarlo como lo había dejado subido y cómo lo había dejado subido con este login v2 así a medio hacer ir me quedo exactamente en el punto donde yo quería vale esto es muy importante tenerlo en cuenta de que el checkout
de realidad puede hacer muchísimas cosas puede incluso deshacer cambios como hemos hecho aquí cambios que incluso en este caso como lo hemos dejado lo hemos dejado con un error Vámonos a entender Esto git switch login me vuelvo por aquí teníamos el login esto vamos a hacerlo bien voy a dejar este login v2 voy a hacer un git vamos a hacer un git commit con un mensaje que nos diga login v2 que teóricamente ya lo tenemos correcto nos volvemos al Main en el momento que ya estamos en el Main git merge login nos dice que ya
estamos correctos Perfectamente git status nos dice lo has tocado Por qué Porque yo estoy guardando este fichero fijaos que yo me he venido aquí y me he puesto aquí a guardarlo y yo ahora mismo Pues podría decirle Pues venga ya que lo hasmerado de alguna forma vamos a decirle este fichero que ahora ya lo hasmerado porque ya no lo guardas pues correctamente nos venimos aquí guidat lo ponemos aquí y le digo git commit menos m y le digo login porque he Acabado de tocar unas cosas y para mí ya es el bueno esto ya significa
que ahora emerge lo hemos hecho en este sentido lo hemos hecho hacia arriba y nosotros aún así después aún hemos seguido comiteando [Música] hemos seguido avanzando En qué punto estamos ahora que el login lo que había desarrollado todo este equipo ya está su equipo ya ha acabado su tarea esta rama la realidad el Head Ahí vamos al gel el Head ahora está por aquí esta rama realidad ya no aporta nada tenemos implementado el login el login de alguna forma Ya lo hemos reintegrado en la rama principal del proyecto todo esto ahora de alguna forma lo
que se suele hacer es venga habéis acabado esta ficha está implementada esta ficha la hemos metido por aquí es correcto se acabó vuestro trabajo esta versión se va a producción el login está perfecto listo guardar ramas o empezar a dejar Ramas en nuestro repo Esto hace que después cuando consultemos ramas empecemos a ver ramas y no sepamos muy bien ni qué pintan por ahí qué se suele hacer en estos casos por las ramas se suelen ir eliminando Así que lo último que vamos a ver relacionado en este punto con las ramas es hay que cargarse
esta rama esta rama ya ha dejado de cumplir su función su función era desarrollar una ficha ya está como ya sea desarrollado la fischer me voy a Venir por aquí y le voy a decir git como rama Branch Cómo me puedo cargar una rama menos de este es el parámetro para cargarnosla y cuál es el nombre de la rama que yo me quiero cargar login vamos a ver si esto funciona si notas y esto que hace nos dice Hey se ha eliminado la rama Branch las ramas al final lo que hacen de alguna forma o
cuando veamos flujos lo entenderéis mejor pero el concepto de Rama lo que representa de alguna forma son trabajos temporales Cosas que se van a hacer las cosas que de alguna forma en algún momento de su vida van a volver a la rama principal y se acabarán eliminando Entonces ahora mismo es como si llegáramos a esto se ha eliminado Por aquí todo esto Esta rama se ha eliminado como tal Se ha perdido vamos a ver git Branch nos dice que ya sólo tenemos la main Ya está ya no hay referencias a ramas pero teníamos algo que
era el reflejo no sé qué bien reloj a ver lo que fuimos haciendo por aquí Bla bla bla bla bla bla bla bla bla bla bla commits de resets nos movíamos el login por aquí en un merge dónde estoy seguro yo por ejemplo que estaba en la rama esta de login el comité este de login v2 creemos que eran esta rama o como si nos vamos a este es decir teníamos este como referencia que sabíamos que era un cómic que teníamos en esta rama vamos a movernos vamos a hacer git checkout y me voy a
ir a ese ID concretamente y me dice algo así Venga tú te has movido a este cómic vamos a ver el árbol dónde estoy por aquí ostras veis esta representación pues parece que la rama Aún está por aquí mi Head la cabeza está aquí pero veis que las ramas como tal aún sigue existiendo algún tipo de referencia lo vuelvo a repetir igual que cuando hacíamos el hard o lo que fuera en realidad nos la hemos eliminado es decir en los logs principales y en el flujo de Nuestro proyecto No la vamos a ver porque eso
nos deja como más limpio todo el devenir de nuestro proyecto pero todos los cómics los commits en realidad eso está como escrito a fuego práctica hay maneras de podríamos hacerle algo pero entender que la realidad es que siempre se deja todos los cómics van a estar de una forma de otra llegado el caso Yo vengo aquí me posiciono al final de lo que era nuestra supuesta rama Recuperamos la rama puede volver a trabajar en ella la podemos volver a emergear o lo intento hacer un merge por el ID este en concreto aunque no tenga lo
que fuera que de alguna manera yo lo sigo teniendo yo lo sigo teniendo me vengo por aquí me salgo y voy a hacer un git checkout pero ahora ya al Main para volverme a situar en la rama principal y ahora si hiciera git Tree aquí lo seguimos teniendo es decir las ramas no se eliminan y nos podemos seguir Moviendo entre a nivel Concepción principal si yo Después me pongo a inspeccionar algo como el log vemos que el log igual ya puede tener alguna cosa más o alguna cosa menos porque se ha emergeado pero pensar que
en el momento que nosotros hacemos referencia a un merch lo que estamos haciendo rápidamente es que todo esto en realidad ahora lo tenemos aquí metido todos estos bolitas que hemos hecho ahora las tenemos aquí es decir que todos estos Cambios de alguna manera han quedado reflejados Así que eso no es ningún problema no es que de repente aparezca aquí un cómic con cosas que se ha sacado de la manga no no no no es que todos estos cómics todos estos seis commits ahora de repente se han integrado aquí entiendo que la rama no se elimina
pero tampoco nos va a dejar hacer el switch Cuál es la manera de probar eso Twitch y vamos a la rama login invalid reference Efectivamente es decir oficialmente no Existe extraoficialmente tendremos referencias para poder llegar a ella de alguna manera vale concepto de Rama entendido Este es el grandísimo concepto y que de una rama puede salir otra rama y que de este punto puede salir una rama para aquí otra por aquí y de esta rama aquí puede salir otra rama y después empezar a hacer mercha entre ellas y después empezar a combinar y proyectos que
emergean en un punto y otros que merecían otro punto todo git nos vale Para movernos como nos plazca a lo largo de todas esas fotografías que son los cómics que vamos sacando de nuestro proyecto [Música] decía que vamos a comenzar con la parte de github os puse como tarea que tengáis creada la cuenta de githga es una cuenta que hay que meter email nombre de usuario contraseña y a correr vale No es nada complejo nada complicado ni nada raro si nos vamos por aquí a la web Principal Pues bueno básicamente para dejar muy claro qué
es esto de githubler esta página la página inicial simplemente gija.com darle un repaso porque nos resume muy bien de que va girl pero yo creo que lo primero que tenemos que responder es lo siguiente que es git y github es lo mismo Vale entonces aquí tenemos que dejar claro que git y github no es lo mismo git es un sistema de control de versiones Es una herramienta que nos permite De Alguna forma trabajar con nuestro código de una manera segura Ya lo hemos visto que sí guarda inversiones que si aquí hago una fotografía de mi
código que puedo volver atrás puedo volver adelante puedo hacer ramas puedo desplazarme me he equivocado aquí lo deshago Cuáles son los cambios que tengo en este código Comparado a la última vez que le hice la fotografía lo que fuera vale eso es git ese sistema de control de versiones vale pero con git como tal En realidad Estamos trabajando como de manera local lo que vimos hasta ahora es que yo más o menos voy creando todas las fotografías y todo ese flujo de trabajo que yo os lo representaba aquí con un pequeño esquema todo este flujo
de trabajo lo estábamos haciendo de forma local Cómo íbamos guardando aquí aquí después creamos una rama después la mergeábamos porque la fusionábamos con la rama principal bueno y vamos como desplazándonos en diferentes etapas del timeline de la Línea de historia un poco de nuestro código vale Qué es github en realidad es una plataforma que por debajo está utilizando git Pero qué pasa la nube está de forma remota entonces lo que nos va a permitir es que nuestro código de alguna manera Está subido a un servidor remoto en el con el que van a poder interactuar
más personas es decir nos va a facilitar de alguna forma que mi código esté disponible en un sitio y que si alguien lo quiere ver quiere trabajar Con él quiere descargarse lo Pues que podamos mantener gracias a git por un lado Estableciendo un poco todo ese versionado en nuestra aplicación todo ese ciclo de vida de nuestra aplicación y con github como punto de Unión vamos a poder trabajar Qué quiere decir esto yo tengo mi proyecto el local estoy trabajando con git presionando ramas lo que sea otra persona está en la otra punta del mundo pero
estamos trabajando en el mismo proyecto Y tenemos los dos El mismo proyecto con el mismo proyecto de git vamos a poder trabajar por separado y llegará un momento en el que yo haré un cómic y suba Y a dónde lo voy a subir para que sea común a gija y en gigabyte será el lugar donde confluya todo lo que hemos trabajado vale Y dónde podremos interactuar de alguna forma entre un equipo o donde yo podré guardar de forma segura pues mi código me arde el ordenador No pasa nada Yo lo tengo en github todo guardado
y con el histórico Completo de cambios que yo ya había generado en mi ordenador no os preocupéis si aún no entendéis el concepto porque a medida que vayamos explicando a medida que se vaya desarrollando y la clase pues Vais a ir entendiendo qué es esto de git por un lado y que es esto de github por el otro lado una vez tenéis la cuenta pues bueno no tiene muchísimo más os quiero dar os voy a dar un par de claves que no os guíe las primeras clases básicamente Para que se entendiera mejor todo básicamente esta
maravilla Es solo veis aquí una página pero esta maravilla a lo que hace referencia es como a la hoja de trucos vale a la hoja resumen de todos los comandos más importantes de git no son todos los comandos no son todas las combinaciones hay cientos de combinaciones vale hay cientos de combinaciones pero sí que es cierto que hay comandos que solo es que utilizamos a diario y son los comandos Que los tenemos que aprender son los comandos que tenemos que saber Vale y es precisamente todos los comandos que estamos viendo en este curso os voy
a dejar por aquí pegada a la URL ya veis que está en español ya veis el confi o suena que lo vimos por aquí el stage lo vimos el Dif lo vimos el brunch lo vimos y ahora aquí el historial con el log lo vimos el reset lo vimos y hoy nos falta esta parte que es donde va a entrar la importancia principal de github que es La parte de sincronizar cambios la parte de que yo ya no voy a tener que estar trabajando únicamente el local No únicamente voy a estar trabajando con un repo
de guija de alguna forma únicamente el local que únicamente se encarga de trazar lo que yo le estoy indicando y lo está guardando en mi disco lo que quiere decir que si mi disco se borra lo siento pero todo esto tan bonito que veíamos de cómo se iba guardando nuestro código Pues también se nos perderá [Música] vamos ahora a empezar a entender diferentes conceptos para que hagamos el flujo y lo reproduzcamos desde el principio de todo me he creado una cuenta en Blanco sin nada de lo que yo tengo subido es decir que según entréis
según os registréis vais a encontrar algo así Algo que está en blanco algo que no tiene ningún dato y que igual No sabéis ni por dónde empezar a pinchar por supuesto github tiene muchísima Documentación github tiene A mi parecer una de las mejores documentaciones en el mundo del desarrollo de software tiene documentación para Prácticamente todo y tiene documentación en español aquí que os puedo decir ya veis productos de github iniciar tu cuenta en github un equipo no sé qué inicio rápido lo vemos por aquí incorporación vale veremos cómo voy a seguir una parte de este
tutorial para hacer algo muy concreto pero que sepáis que tenéis en la prácticamente Cualquier pregunta respondida y no solo preguntas referentes a githga sino que la propia documentación de github es una de las grandes documentaciones también de git del sistema de control de versiones aunque no tenga que ver como tal vale venga Aquí estaba enseñando lo que sería un gift Card recién creado por aquí os puedo enseñar lo que es un git Hub ya funcionando hablábamos del concepto repositorio el concepto repositorio Digamos que es una carpeta donde hay un proyecto guardado un proyecto que está
trabajando con git y que yo he creado digamos que un espacio dentro de mi cuenta de github lo he reservado para trabajar con el código de un proyecto los repositorios en realidad pueden ser públicos o privados estos los estáis viendo aquí si entráis en gija.com/dc podréis ver todos los proyectos que yo tengo por lo menos en esta cuenta tengo más de una cuenta tengo más de una Cuenta porque tengo cuentas para trabajar yo por mi cuenta tengo repositorios privados Bueno hay muchas cosas pero digamos Esta es la la oficial como creador de contenido aquí podéis
Ver diferentes cosas entre ellas por ejemplo hasta repo que os estaba sellando antes el repo del proyecto o donde yo estoy dejando la documentación de este curso de kit muy bien lo primero que os puede llamar la atención es que si entramos aquí en Nuestra raíz que será gitga.com/ el nombre de nuestro usuario veremos algo así Oye qué bonito mirar todo lo que tiene por aquí braise Vale entonces lo primero que vamos a hacer es entender el concepto de repositorio Y cómo o lo que yo recomendaría hacer en vuestro githubs si aún no lo habéis
hecho [Música] me voy a ir por aquí donde yo tengo mi github en blanco Este es un usuario que he creado en blanco lo primero que os va A marcar es esto venga create tu primer repositorio crea tu repositorio haz algo o si no directamente entra en tu usuario yo este usuario le llamado price maurier no vamos aquí que tenemos Hey has hecho algo bueno aquí simplemente esto no lo hagáis caso a vosotros si no teníais githuteado os va a aparecer en blanco yo aquí porque hice una prueba de subir un fichero para ver que
todo esto estaba funcionando pero bueno que os diría yo si os creais una foto editar el perfil Dejarlo un poquito bonito pensar que github es la red social casi por excelencia para desarrolladores cómo lo podemos dejar así bonito vale esto es todo lo que yo cubierto Estos son datos que podéis cubrir vosotros pero Cómo podemos hacer algo así básicamente esto es la página principal de nuestro kit Cómo es la página principal de nuestro giga cómo podremos crearla primero vamos un poco entender qué es esto de github Y qué cosas podemos hacer vale vemos que Tenemos
la parte overview Esto será Ver Nuestro usuario tenemos la parte de repositorios yo no tengo ningún repositorio un creado pero ya vemos Que aquí hay un botón para crear uno nuevo tenemos la parte de proyectos de paquis de Stars vale decir hay diferentes cosas estar son a lo que nosotros le hemos hecho favorito vale Y después la parte proyecto de package pues ya es algo algo más avanzado también deciros que la parte superior encontraréis otras cosas Vale encontraréis accesos a si tenéis lo que se llaman issues con spaces marketplace Explore ya veremos después todos sus
conceptos Pero bueno es básicamente tenemos la posibilidad de hacer dos cosas o trabajar con nuestro usuario o de alguna forma ver qué han hecho otros usuarios me voy a ir por aquí por ejemplo a Explorer esto lo tenéis arriba de todo aquí veis diferentes cosas vale que pueden igual estar destacados lo que sea me voy a ir Aquí a trending por ejemplo vamos a ir a trending flare que a todo el mundo suena seguro pues mirar este es el repositorio Aquí está todo el código base de flutter decir es un proyecto de código abierto por
lo tanto todo el código está aquí subido gracias a esto toda la gente toda la comunidad puede ver el código fuente de flutter y la comunidad puede interactuar con él diciendo Hey Mira voy a implementar este cambio Qué te parece He detectado este bug a ver si lo corregís se entiende vale Y aquí tenemos un proyecto súper súper súper súper top básicamente a vuestro alcance cada proyecto tiene una URL que suele ser gija.com/h nombre del usuario va o el proyecto o la empresa o lo que sea barra ahí el nombre ya de este repositorio porque
repositorio precisamente esto es esto el repositorio es la base de código como tal si yo no me voy a repositorios uno de mis repositorios es este de gif El del curso que aquí lo que os pediría como siempre si os podéis venir aquí arriba y dar al botón de estar pues os lo agradezco un montón porque es una forma de apoyar el proyecto y así lo ponéis de favoritos que ya vimos que hay una sección ahí metida para para que veáis rápidamente los proyectos a los que le habéis dado favorito para acceder rápidamente a ellos
vale un repositorio sería como un contenedor sería como en el momento que Vosotros creáis una carpeta en vuestro ordenador porque allí Vais a meter el código de un proyecto o de lo que sea y ese proyecto está trabajando con git Pues eso sería como la representación que nosotros tenemos arriba vale arriba refiriéndome al propio os decía que algo que a mí me parece bastante importante es crear como la página principal de git de githga la página principal de github si nosotros nos íbamos a nuestra raíz no tenemos nada así que vamos a entender el Primer
concepto que es el concepto de crear un repositorio es decir un lugar donde se va a trabajar nosotros tenemos dos formas de hacerlo crear un proyecto con git en nuestra máquina y después subirlo a github o tenemos la posibilidad de crear ya en github directamente un proyecto que trabaje con git vale hay como dos formas hay gente o según el estado del proyecto en el que estemos que se crea arriba repositorio después lo descarga empieza A trabajar con él y empieza como sincronizar los cambios o en nuestro caso en la clase anterior estamos trabajando con
un proyecto en el que no conocíamos lo que era github sologitte y veremos también Cómo podemos acabar subiendo lo aquí a vale si creamos un nuevo repositorio si le damos al botón New veremos lo siguiente que nos dice Hey crea un nombre para repositorio y dar una descripción si nunca habéis trabajado con githga si nunca habéis Creado un repositorio lo primero que os diría yo es que creéis un repositorio que se llame con vuestro nombre de usuario este usuario pensar que estoy un usuario nuevo no estoy en mugrede me he creado uno en blanco el
usuario es price maure el nombre de repositorio el nombre del directorio es price maure y veis lo que nos dice aquí Hey Brain mour es especial es como el repositorio donde nosotros vamos a poder crear nuestra página de Inicio y así poder ver algo como lo que yo estaba enseñando aquí si entráis en githga.com/mowred directamente Vais a entrar en un repositorio aunque no lo Vais a saber dónde podréis crear vuestra web personal de alguna forma llegado el caso voy a decir que lo voy a crear otras opciones que tengo es que sea público privado privados
o lo verás tú o miembros del equipo que tú le des permisos público lo podrá ver todo el mundo Hay diferentes cosas más algo muy importante en todos los repositorios es lo que aquí vemos como rítmi es decir un fichero que en realidad nos sirva de documentación del proyecto que no entres en este directorio y que lo único que veas son más directorios y más ficheros con código programado porque claro no me voy a poner a leer todo el código para entender de qué va todo esto veíais que antes estábamos en el repositorio por ejemplo
de este proyecto de git este es El ritmi Este es el fichero donde yo os Cuento todo todo lo que se podría acabar encontrando el código Así que lo que recomiendo Es que siempre si creáis un repositorio le añadáis su ritmit igual ya tenía ese ritmo local y después lo Vais a subir vale Pero bueno tener el fichero rítmi de alguna forma recordáis que hablamos del git ignore también podemos Añadir un git noir directamente pero en este caso no lo vamos a hacer y también tenemos la licencia github por Excelencia es un lugar donde tenemos
código Open source en muchos casos vale el opensor no quiere decir que tú puedas llegar a él copiarlo ganar dinero con él y no importa como si fuera el código que yo le pueda hacer copypaste no existen diferentes licencias de código vale de código abierto o incluso de código más privativo que tú puedes ver el código pero no puedes hacer absolutamente nada con él Pues bueno aquí veremos diferentes licencias si ya queremos Crear una licencia en este caso no voy a seleccionar ninguna Pero simplemente Buscar que hace cada licencia porque igual si vais a hacer
un proyecto y queréis que de alguna forma legalmente ese proyecto esté amparado pues lo tenéis que le tenéis que asociar una licencia en mi caso Esto va a ser algo de prueba Así que no voy a hacer nada esta licencia no la añado ni mucho menos vale creo repositorio y más es como el de vuestra base si queréis se le Puede crear una se le puede Añadir una una licencia creative commons de Apache o esos que prácticamente puedes hacer muchísimas cosas con él pero bueno no voy a hacer nada simplemente cuando acabo le voy a
dar a crear repositorio y ya está es decir se ha creado un repositorio que se llama briced moure que ya veis que está dentro de bryce moure braismore y que tiene un ritmo inicialmente tiene un hola se acabó cosas que ya podemos ver Aquí ya estamos en un repositorio ya si queréis podéis entrar todo el mundo en giftcap.com barra price entrar aquí fijaos lo que ha cambiado tenemos lo de antes pero ahora ya parece el ritmo que habíamos creado es rítmica habíamos creado como hemos creado un repositorio con el mismo nombre que mi usuario ya
lo muestra dentro de la página de inicio de nuestro usuario de githga vale Y ya tenemos un repositorio que se llama briced el repositorios ya tengo uno ya Podría hacerle un Start a este repositorio para tenerlo como favorito y después si me voy a la sección de Stars Pues bueno aquí irían apareciendo los que yo le vaya haciendo Stars básicamente Este es mi propio repo pues bueno ya lo tengo aquí vamos a repo vamos a empezar a ver cosas que nos va enseñando por aquí el propio tenemos Los ficheros ritmo mardown Tenemos un montón de
cosas por aquí arriba y sus que alguien tenga Incidencias abiertas pues rico es que alguien nos vaya a enviar código para acabar metiéndolo en nuestros repositorio ya entenderemos bien ese concepto actions projects wiki seguridad settings muchas cosas no os preocupéis ya digo que esto es algo que se va aprendiendo muy poquito a poco lo principal que nosotros aquí vamos a tener el listado de ficheros que tengamos subidos y que incluso hasta yo podría editar el código desde el propio Github fijaos esto es bardown si no tenéis ni idea lo que es madown venís a Google
y os vais por ejemplo a esta guía de mardoum simplemente es una forma de escribir texto rico pero con diferentes combinaciones de caracteres fijaos que aquí vemos el ejemplo súper rápido el heider que vemos aquí tiene tres asteriscos delante estos tres asteriscos al final lo que van a hacer es representarlo como un texto de Cabecera algo más grande vale Incluso el propio github tiene su propia guía de mardon fijaos un asterisco dos asteriscos todo esto asteriscos y como va cambiando el texto y aquí podremos encontrar una guía en el que vemos toda la sintaxis poner
negrita itálica esto no quiere decir que podamos hacer 100.000 cosas pero sí que en cierto modo tenemos como la forma la manera de darle formato al texto más típica y aparte Madame podemos Añadir código html Así que si metemos html también lo podemos representar aquí por eso yo tengo algo así esto es todo parte más down parte Añadir imágenes parte algunos enlaces a ciertas utilidades vale html aquí creando una tabla y enlazando a YouTube Vamos juntando un poquito de cosas esto ya digo que ver cómo funciona mardown es súper fácil que queréis ver cómo está
creada mi plantilla esto es github el código es público os vais a mi Repositorio el repositorio que se llama moureth por ejemplo para verlo aquí yo me voy a poner a editar ya directamente esto y veréis todo el código moddown que yo he creado para que se pueda ver de alguna manera así vale decir que os gusta algo revisarlo echarle un ojo para eso está gija está para colaborar está para subir nuestro código y está también para aprender [Música] volvemos por aquí tenemos esta parte Esto es un código que está subido en github si yo
quiero empezar a trabajar con un proyecto si yo quiero empezar a hacer cosas Cómo puedo trabajar Cómo puedo empezar a sincronizar los cambios de los que yo hablaba de git con los cambios de github etcétera Ahora aquí es donde ya nos tenemos que venir a la parte más serie lo primero que tendremos que hacer es configurar de alguna manera que nosotros podamos interactuar con git have recordáis que yo ahora me vengo Aquí a la terminal me vengo a la terminal por aquí donde está aquí tenemos la terminal dejadme que la haga un poquito grande para
que la veamos Bien voy a abrir el proyecto con el que estábamos trabajando recordar que era el Hello git Este voy a entrar en el proyecto git lock No ya decíamos que aquí ya teníamos ciertas cosas hechas en el propio git que si entrábamos en el git Tree pues ya veíamos como habíamos estado trabajando un poco lo que vemos Representado aquí Cómo empezamos a hacer diferentes cosas a nuestro código a modificarlo a cambiarnos de Rama yo tengo aquí el proyecto donde estamos creando diferentes ficheros en python que no tenían absolutamente nada simplemente aquí un sprints
para saber cómo nos empezábamos a mover vale Yo tengo un sistema de git montado un sistema que me ha trazado todo el recorrido y que yo he utilizado para trazar todo el recorrido de mi código Pero pero pero pero qué pasa si yo ahora quiero trabajar con él en githga Por qué Porque ahora me decís vosotros Hey Yo también quiero participar en este proyecto súbelo un servidor tenemos que tenerlo en algún lado común y después nosotros podremos seguir utilizando git el local haciendo lo que nos dé la gana pero como siempre vamos a trabajar sincronizados
con un punto de Unión eso será suficiente Cómo representamos eso Vale imaginaos que estamos aquí vosotros estáis aquí y github está aquí algo así que esto fuera github que esta sea mi máquina os digo Aquí mugre y aquí os digo que tenemos otro de cualquiera Cuál va a ser la forma de interactuar si nosotros estamos trabajando en un mismo proyecto Esta es mi máquina Esta es la máquina del otrodep qué voy a hacer decirle al otro de Hey pasame un zip con lo que has hecho y dice el otro de Ah vale pues sin problema
de paso yo un zip Aquí en dos segundos aquí tienes todo el código y miramos el gif no Esto no es así hay que trabajar con un punto común donde será el punto común yo estoy trabajando con el proyecto lo subo a github el otro de está trabajando con otro proyecto con el mismo proyecto lo sube a github cuando yo le digo a guija Ey qué ha pasado en el proyecto está todo Ok lo que yo he hecho me dirá a githud quizás este otro deb ha Subido algún cambio Entonces arreglaos porque yo aquí tengo
que tener lo bueno llegar a un acuerdo entre vosotros con el código con el que habéis trabajado y después sincronizar los cambios ya nos hemos puesto de acuerdo con todo Ok pues Seguramente yo ya puedo venir aquí y decir Hala Ahora sí tráeme todos los cambios para abajo y esta persona va a hacer lo mismo vale github cómo está cómo está nuestro repositorio de código común dirá Pues mira igual Bryce ha utilizado algo ha cambiado algo ha hecho lo que sea está todo sincronizado Ok tenemos un único punto un único punto de unión entre ambos
desarrolladores que es github que es el servidor como lo tenemos todo en el servidor Pues todo sin problema vale Y para eso es para lo que existe ahora ya podemos trabajar de forma colaborativa qué decís vale Pero es que yo trabajo solo yo no trabajo en equipo muy bien mouredev está aquí con su código lo que Sea yo estaba aquí con mi fichero de código se me va la olla lo borro lo renombro puff lo he roto todo me arde el ordenador me explota la casa No pasa nada como yo el código voy haciendo una
sincronización con el servidor remoto yo ahora Cambio mi ordenador no nos vamos a poner en el peor de los casos no es que pase nada Es simplemente se compra otro PC qué hago me descargo lo que yo tengo en github Y si estaba sincronizado con lo que yo tenía el local puedo seguir Trabajando como si nada porque todo lo tenemos de forma remota y todo este flujo que hemos ido representando por aquí esto también es lo que va a tener giga digamos que en github lo único que hay es como otro ordenador en el que
nosotros vamos dejando como punto de reunión de alguna forma de nuestro código y donde vamos a ir subiendo todo por lo que todo ese historial de git también lo vamos a tener en [Música] Pero cómo hacemos este proceso para poder subir el código Ahí es donde entra lo verdaderamente más complejo por eso os digo que las guías que tiene github a mí me parecen buenísimas si nos vamos a la parte de inicio rápido tenemos que nos Explica cómo crear un repositorio ya lo veis que tenemos un montón de cosas relacionadas con la creación Vale Nos
dice configuración de git estos son cosas que incluso ya hemos visto de Alguna manera datos de creador repositorio bifurcar administrar archivos nos dice absolutamente todo pero aquí entra algo muy importante que es cómo comunicamos nuestro ordenador y cómo lo autenticamos dentro de githga porque esto seguirá siendo un proceso inicialmente desde consola también con herramientas gráficas pero de momento nos vamos a centrar en principio la consola tenemos una sección que es la sección de autenticación con una sección Que básicamente nos vale para entender cómo conectamos nuestro ordenador Aquí vemos que hay muchas formas vemos que nos
dice Hey tu cuenta de github pues métele un factor vale doble factor conéctala con sh problemas con sh a día de hoy Esta es la forma correcta de hacer vemos aquí seguridad vemos un montón de cosas vale pero digamos que nos vamos a quedar con esta parte de ese y exactamente con esta parte que va a ser Cómo podemos preparar nuestra Máquina para trabajar con sh lo entenderemos muy rápido que es todo esto vale sh lo deja de ser un protocolo de autenticación basado en una clave privada y una clave pública pero no os preocupéis
vamos a seguir tutorial y vamos a ir entendiendo poquito a poco de alguna forma necesitamos establecer unas credenciales que github conozca para que yo cuando quiera trabajar con github desde mi máquina github sepa que yo soy un usuario que tiene permisos para hacer Todo esto mucha calma mucha calma acerca de sh podemos ir por aquí podemos empezar a ver un montón de cosas pero ahora mismo no lo vayáis haciendo en paralelo porque creo que es mejor que atendáis vale lo primero que nos va a decir esto es que vayamos comprobando vayamos comprobando si en primer
lugar tenemos ya unas claves sh creadas y nos dice de esta manera puedes listar y yo me pongo aquí a alistarlas yo puedo hacer aquí algunas cosas y va a decir Oye sí Igual tienes claves ch si no lo que sea no importa de momento no nos preocupemos por eso porque lo más fácil o la manera más fácil para saber si tenéis claves sh creadas es buscar en la raíz de vuestro disco según el sistema operativo puede variar pero la raíz de vuestro disco una carpeta oculta que se llama punto ssh veis que yo acabo
de entrar aquí y la tengo vacía la tenemos totalmente vacía Por qué Porque yo mis claves se eche las he eliminado Para hacer todo el proceso desde cero porque a veces puede resultar un poquito lioso pero ya os digo que no lo es tanto me voy a abrir una nueva pestaña y me voy a colocar directamente en este en este directorio en el directorio donde deberían estar las claves ch aunque ya digo que las claves ch se pueden crear en cualquier sitio y después ya las podéis mover a un lugar vale la buena práctica suele
ser tenerlo bueno en un directorio que se llama Precisamente ssh listo esto estoy en el directorio vamos a seguir viendo un poco que nos dice Mira es Quizá quizás tienes alguna clave con estos nombres porque igual ya existe si ya tenéis un directorio sea si ya tenéis creado esto el principio ya alguna de estas o algo que sea punto pub de público ya tendréis una clave ch si no la podéis ir generando desde cero vale vamos a hacer el proceso de generarlo desde cero que básicamente es lanzar ciertos comandos Fijaos el primer Comando nos dice
habla terminal y haz este código vengo por aquí y nos dice lanza esto y añade tu email price maure @gmail.com que es el que yo acababa de crear Este es el email de mi cuenta de github Y esto es lo que yo acabo de copiar aquí y que acabo de pegar lo lanzamos y nos dice vale se ha creado un ave una clave pública y una clave privada me voy al directorio Dónde está Vale sh dejarme ver y me dice muy bien pero entra métele un nombre para el Fichero Cuál es el nombre para el
fichero aquí nos estaba diciendo github de alguna manera que los nombres típicos para el fichero si de rsa y dcd vale diferentes nombres bueno no me voy a complicar mucho Le voy a poner idr sea sin más aunque ya digo que aquí veis que incluso este pues tiene el propio ID con el con la encriptación que estamos utilizando lo que sea no pasa nada el nombre realidad le podéis dar el Cos de la gana yo siempre le llamé y de rsa Porque es el típico Pero bueno aquí estamos utilizando de hecho una encriptación concreta le
podríamos llamar así no importa ya os lo digo le doy el nombre y nos dice meter un past Face es decir si aún lo quieres securizar más le podéis dar una contraseña y si no lo podéis dejar en vacío lo quiero dejar vacío hago un enter y ya está y dice repite por Face hizo un enter no nada vale Ya está teóricamente se me ha generado una clave Ssh nos vamos al directorio donde estábamos y aquí lo tenemos y de rsa y de rsa punto nosotros para gijón necesitaremos el punto POP si no entendéis bien
que es ch no tenéis que entenderlo al 100% pero Buscar información porque al final trabajar con securización de tipo Clave privada y clave pública es muy típica en programación leer Buscar información que seguro que hay un artículo donde se explica genial vale pero aquí Entenderéis un poquito lo que es pero no deja de ser una clave una clave que nosotros tenemos una clave privada que solo vamos a tener nosotros y una clave pública que en cierto modo podríamos compartir y que son claves que en el momento que se comparan y que se juntan de una
manera haciendo magia que tampoco lo vamos a explicar ahora pues podrían saber si esa cable clave pública está asociada a la clave privada y así Digamos si hacen match de alguna forma Pues sabremos que estamos ante lo correcto ya tenemos nuestra clave vamos a seguir viendo qué nos dice ya le hemos creado nos dice venga sigue hacia adelante Aquí estaba creada ya veis esto era para crear nos dice lo del parface paso a paso y en español lo tenéis absolutamente todo y si ahora yo me vengo por aquí hice inicia la gente ch en segundo
plano básicamente para echar un ojo de si esto está funcionando no está funcionando nos dice venga ya Tienes aquí un ID decir vale ya tenemos unas sh de alguna forma muy bien lo siguiente que nos dice es abre el fichero de configuración pero si no tienes un fichero de configuración para sh créalo Con qué lo creamos con el touch que lo queréis crear a mano Ya veis ahora tenemos un fichero que se llama config por aquí que lo queréis crear a mano desde el sistema de directorios lo podéis hacer Bueno yo lo estoy haciendo desde
consola porque Estoy siguiendo todo esto y nos dice que le añadamos esto nos dice engañaremos lo siguiente Pues voy a venir por aquí copio todo esto y lo guardo ya está Vale qué tendríamos que ponerla aquí en identity file tendríamos que ponerle el nombre del fichero de nuestra clave pública y Privada y de Rs a vale Aquí vemos algunas cosillas un Host que es github básicamente este fichero de configuración es para de alguna manera ya ir preparando nuestra clave para Poder acabar conectándonos aquí aquí nos lo está explicando todo Yo estoy yendo un poquito más
rápido pero tampoco os preocupéis y lo último que nos dice aquí es que añadamos esta clave a nuestro sistema de gestión al final de las propias claves del sistema veis que yo aquí estoy con Mac pero documentación para Windows documentación para Linux prácticamente es la misma Solo que habrá ligeras variaciones utilizarla de vuestro sistema Pero ya Digo que simplemente es seguir los pasos cómo lo añadimos esto ya lo tengo guardado listo me vuelvo a la consola y me dice añade esto y qué es lo que tenemos que Añadir dice venga añade el idrsa vale aquí
tiene otro nombre porque le ha dado otro nombre voy a probar añadiendo este y haciendo esto veis lo que hice identidad añadida ya está digamos que hemos asociado esta clave ssh a nuestro llavero para que el sistema ya la conozca y ya la es como Los certificados digitales No que los tenemos y después los tenemos como que instalar en el ordenador para que sepa que el sistema que esa clave de alguna forma la podemos utilizar Pues bueno es exactamente lo que yo acabo de hacer por aquí ahora que ya tenemos esta clave creada en nuestro
ordenador nos toca irnos a gift y nos toca irnos a github de la siguiente manera vamos por aquí vamos a nuestro usuario en nuestro usuario nos podemos venir a Las settings del usuario arriba de todo a la derecha el iconillo de vuestro usuario el Avatar y os vais a settings si os vais a settings aquí veréis un montón de cosas tendréis opciones para configurar vuestro usuario hasta borrarlo hasta si os pasa algo a quién le pasa de siguiente toda vuestra cuenta lo que sea en el momento que tenéis toda la cuenta hay una parte que
dice esto ssh y gpx vengo por aquí y tenemos dos formas de gestionar claves hay más Incluso hasta ahí lo que se llaman toquen de usuario para crear digamos una clave que sea conocida por vosotros y también por github a modo de contraseña eso también existe pero si vais a trabajar siempre desde la misma máquina yo lo que os recomiendo Es que hagáis esto porque porque así ya no tendréis que volver a estar introduciendo claves ya quedará ligada vuestra máquina el local a la máquina remota de github y ya será Todo muchísimo más automático y
da igual que trabajéis con un proyecto o con 200 Digamos que ya estará todo el incap muy bien Le doy que quiero crear una nueva clave SS de tipo autentication key y le puedo dar un nombre o no vamos a nuestra clave y vamos a la clave pública y la voy a abrir la voy a abrir Pues con un editor de texto con lo que sea aquí lo tenemos la clave pública ya lo veis aquí es algo autogenerado esto no Debería ser de dominio público como tal Pero bueno En cierto modo Esto es una prueba
da igual Es decir os podéis parar a copiar esto para hackear da igual Esto es algo que se va a borrar todo y que no se puede hacer absolutamente nada con él porque lo importante de todo esto es tener la clave privada que esto es algo que no se verá copio la clave pública la pego aquí y le digo que quiero Añadir muy bien ya tengo una clave ya veis aquí el botón quiero Añadir más claves porque tengo más ordenadores o lo que sea lo Puedo hacer y ya vemos que aquí brains Mauri arroba Gmail
ya tiene una clave con sha Bueno una clave encriptada vamos a decirle y que esto lo acabo Añadir hoy y que nunca se ha usado aún yo nunca esta clave para interactuar con githga hasta ahora pues más o menos ya lo tenemos todo volvamos a la guía que ya estamos acabando nos dice que le añadamos nos dice que aquí lo podríamos copiar lo que sea nos vamos a settings bla bla bla bla bla bla bla ya lo último Es probar que de verdad podemos conectarnos desde nuestra máquina a repositorio de giga cómo hacemos esto con
esta instrucción que nos dice aquí ssh menos t y nos dice Uy no se puede de momento establecer esta conexión no sé qué Porque primero la tienes que Añadir y tienes que aceptar Bueno nos dice venga añádela para que esté permanentemente añadida vamos a volver a lanzar a ver qué nos dice dice Hey maure estás autenticado correctamente pero aún No tienes acceso por el shell no os preocupéis es normal Este mensaje es el bueno inicialmente vale Así que ya hemos podido gracias a que nosotros tenemos aquí en local la clave pública y la clave y
arriba tenemos la clave pública yo le he pedido de alguna forma conectarme con github porque también lo hemos metido dentro de la configuración es un Host conocido yo le he dicho Cuál es mi nombre de usuario que lo tenemos en este fichero que es el config y de Esto de alguna forma ya le estoy indicando Cuál es mi clave que me Quiero conectar a github que tengo esta autenticación vale Y todos esos datos ya de alguna forma está linkados cuando yo le he pedido establecer una conexión ya ha funcionado entonces de momento esto es todo
lo que deberíamos hacer para conectarnos a github vemos que aquí aún sigue poniendo alguna cosa que si tenemos farface que tenemos contraseñas intermedias lo que sea bueno de momento No le vamos a hacer más caso a esto [Música] volvámonos a nuestro repositorio me voy a volver a mi repositorio que yo estaba aquí todo tranquilo con el repositorio por aquí creado brainsmok este repositorio de alguna forma a mí me gustaría que acabara siendo el repositorio donde yo voy a subir el proyecto con el que hemos trabajado imaginaos que fuera este si no creamos otro que tampoco
hay ningún problema Como este es el repositorio que marca la página principal no utilicéis la página principal de vuestro github para subir un proyecto el repositorio con el mismo nombre que vuestro usuario es para ponerlo bonito para haceros lo que yo os enseñé por aquí así que qué sería lo correcto vamos a irnos al inicio y me voy a los repositorios y me creo un nuevo repositorio me voy a abrir esto en visual Studio code este proyecto lo habríamos le habíamos llamado hello git Bueno queréis que le llame Exactamente igual que el proyecto puede tener
un nombre diferente vale pero me vengo por aquí le digo pues Hello git dice vale Este nombre está disponible obviamente es mi usuario el mismo nombre puede existir pero siempre va a ser distinto por el propio usuario público no quiero crear ni un Reading ni un geeting noir no quiero hacer absolutamente nada lo voy a creer en blanco por ejemplo en este caso lo creo en blanco y Aquí vamos A empezar ya a ver diferentes cosas por línea de comandos nos dice que podemos hacer algunas cosas o si ya que hemos creado recordáis estos comandos
por lo menos estos los primeros gitinit crear un fichero subirlo nosotros ya hemos trabajado con git es decir ya tenemos un repositorio de git en nuestro local [Música] vamos a pasar ahora a la parte en la que vamos a intentar que todo el código de Git ahora también está en github y es donde entra esta parte entre el concepto entra al comando de git llamado Remote git está pensado para trabajar el local y es remoto porque remoto digamos va a ser la fuente de verdad como tal si llega alguien que se pueda Conectar a github
se baja el código y se pone a trabajar y ya está y todo el mundo trabajando como el esquema que yo os enseñé todo el mundo trabajando contra el propio guiso aquí Nos dice lanza esta instrucción donde tú estés Guille Remote creo que se entiende bastante git añade Un remoto en el origen con este usuario que este es el usuario genérico pero en concreto me repositorio brainsmoure barra Hello git.guit brainsmoure/ Hello git ese repositorio que Nosotros acabamos de crear aquí así que me vengo a la consola me voy al proyecto el proyecto era este vi3
Este Era el proyecto con el que estuvimos trabajando Cuando hablamos de git y ahora voy a lanzar esto Remote origin Vale y digamos le voy a asociar a este repositorio que únicamente estaba funcionando el local le voy a asociar Con qué quiero que se empareje con el repositorio que yo tengo en gija lo lanzó teóricamente no ha pasado absolutamente nada pero no ha fallado con lo cual Esto está bastante bien De alguna forma yo ya he configurado mi Repositorio local puedo poner por aquí porque estatus por ejemplo a ver si nos dice algo pues no
nos dice que no tenemos nada nuevo pues le podemos decir git lock podemos ver algo por aquí pues a ver qué tienes pues no de momento solo te estás moviendo algo así en lo que tú ya tenías vale Pero ahora ha entrado otro concepto que es el concepto de remoto Cómo puedo hacer para ahora todo lo que yo tengo en git de repositorio Local me voy a refrescar este repo que yo he creado que se llama Hello git lo voy a refrescar refresco aquí aún no aparece el código pero yo sé que el local tengo
todo este código todo este código por aquí Qué pasa Cómo puedo hacer yo para subir todo este código a githga ya le he indicado Con qué repositorio de github está emparejado No pues ahora entrará el siguiente Comando importantísimo y de uso diario Y que forma parte del flujo De git nosotros si recordáis siempre hacíamos git status a ver que tenía que Añadir Guitar git commit hacíamos la fotografía pero ahora todo eso que yo tengo el local lo quiero pasar a remoto vengo por aquí y hago git Push inicialmente tendría que hacer git Push es el
comando para subir pero aquí me va a decir que seguramente me falta algo vale decir git Push pero no a dónde quieres hacer el Push Dame algún dato más pues nosotros si recordáis el punto Donde nosotros nos encontramos es el origen es el punto final de repositorio git Push origin vale el es como el repositorio de origen con el que nosotros queremos hablar con el repositorio de origen remoto en este caso Y a dónde quiero hacer el Push Yo quiero hacer el Push a la rama principal del proyecto la rama principal del proyecto igual que
el nuestro también se llama Main recordar que cuando utilizamos git y lo inicializamos le Llamaba Master pero nosotros la renombramos a Main ya que a día de hoy un poco el nuevo estándar es que en vez de Master le llamemos Main nosotros al creador repositorio en githga también se va a llamarme y lo siguiente que nos dice es esto git Push menosu voy a intentar lanzar esta parte ahora ya ha funcionado Ya lo tenemos perfectamente ligado git Push menos su origin Main ya digo que esto es la primera vez porque tenemos de alguna forma que
indicarle Nuestra rama Main Con qué se corresponde arriba Vamos a leer un poco que ha hecho vale contando objetos comprimir no sé qué lo sube Cuánto pesa Qué velocidad se ha ido a gija.com price moure barrattle y hay una nueva rama allí arriba que se llama Main vamos a repositorio que nosotros la habíamos llamado Hello git y vamos a refrescarlo qué tenemos aquí pues ya todo lo que teníamos el local absolutamente todo lo que teníamos el local el git ignore los diferentes Ficheros en una rama que se llama Main [Música] Ok entonces imaginaos que ahora
de alguna forma alguien acaba trabajando con este repositorio y este repositorio nos dice venga añádele un ritmi vamos a aprovechar que nos dice esto para añadirlo Simplemente yo puedo hasta trabajar desde arriba nada añado ritmo y le digo hace un cómic la propia plataforma de github nos vale Hasta para gestionar desde ella creación de cómics Nos dice que queremos una rama lo que sea yo directamente lo voy a Añadir Entonces ahora tenemos también un fichero que es un ritmo y dice Hello kit me vuelvo a mi local que tengo aquí teóricamente mi fuente de verdad
como tal es githga porque vamos a imaginar que esto que estábamos viendo aquí Perdón este ritmi lo ha añadido el otro desarrollador y lo ha subido por ejemplo lo he añadido y lo ha subido pero claro yo ahora me voy a poner a trabajar el Local mi proyecto como si nada y este login por ejemplo este Hello kit ahora voy a poner New Hello gith lo he modificado Yo sigo trabajando en local como si nada me vengo aquí y hago quita estatus dice Hey has modificado este fichero venga añádelo esto lo de siempre trabajando con
git Aquí no hay gija por ningún lado digo añade este fichero quitar Hello it añadido voy a subirlo por lo menos hacer la fotografía git commit menos m y le ponemos un mensaje a Este commit y le digo Hello github se ha cambiado se ha subido correcto perfecto genial me vuelvo arriba github refresco Cómo se llamaba el fichero Hello git si entro dentro a un pony New Hello kit no pone lo que yo acabo de modificar que es New Hello git have Entonces ahora Aquí es donde entra la siguiente parte hago una hago un commit
eso lo que me haces una fotografía concreta de esa parte de mi código y lo guarda el local pero falta la parte de ahora ese cómic Subirlo lo que yo voy a poder subir a github es lo que yo tengo comiteado local y aquí falta un cómic nos vamos a github veis aquí 14 cómics pero como 14 cómics y yo esto es la primera vez que lo tengo en githga pincho aquí y que veremos todos los cómics que yo he hecho todos los cómics que yo tenía el local esta historial con el git log que
nosotros revisábamos con el git Tree ahora también lo podemos revisar arriba con sus ideas con lo que había en cada Caso es decir exactamente el sistema git corre dentro de kitka aquí lo tenemos vale Y otro usuario que no soy yo pensar que yo estaba aquí subiendo desde moureth Porque lo estaba subiendo a mi cuenta principal de githga como yo lo tenía definido en ese momento ahora quien está trabajando con él es moure es otro usuario muy bien Cómo hago para subir mis cambios este nuevo fichero que ahora ha cambiado ya no me puedo quedar
en el cómic ahora también lo tengo que Subir arriba git Push origin Main directamente yo puedo hacer git Push ahora ya sé dónde estoy mi local ya se ha sincronizado con el remoto hago git Push y vamos a ver esto rechazado Socorro error no lo puedo subir antes me dejó y ahora no puedo por qué lo he dicho un montón de veces ya en el curso git es un sistema muy muy muy seguro recordáis cuando la clase anterior estamos trabajando con dos ramas yo cambiaba una cosa en una rama y después Yo quería enviar esa
rama a la otra rama y me decía Hey Si no estás sincronizado si no está todo correcto si no estás al tanto de todo lo que ha pasado en el repositorio yo no te dejo escribir en él y aquí es lo que nos dice dice Hey tú quieres subir algo Pero quizás no estás al día no de alguna forma no estás perfectamente sincronizado con lo que tú tienes arriba Entonces ahora aquí si nosotros quisiéramos ver como estamos en github podríamos irnos a github y ya Está no y ver Ah vale aquí hay un fichero pero
imaginaos un proyecto gigante yo aquí no tengo ni idea lo que puede estar pasando [Música] entonces git Push para subir pero ahora Aquí vamos a ver el siguiente Comando de git el siguiente Comando de git es el git fecha así lo voy a ejecutar veis que en principio tampoco es que haya pasado gran cosa vamos a llamar a guild por aquí Vámonos al Main Qué dice aquí Hello github esto Quizás es lo que subí yo no qué podríamos hacer con esto para qué sirve elche Al fin y al cabo Vámonos aquí un fijaos en esto
recordáis que nosotros aún no teníamos de alguna forma porque os hago con el porque es un poquito más fácil de ver cuál es la diferencia aquí Precisamente es donde entra el tema entre fecha y el pool el fech lo único que hace es descargarse el local el historial de cambios pero sin Descargarse los cambios Qué quiere decir que yo hice githfec ahora consulto cuál es el árbol de cambios y vemos esto en origin Main en el repo arriba Alguien ha creado este ritmo Entonces yo de alguna forma ya puedo ver cuál es el problema que
yo tengo o por qué la cosa Se ha desfasado de alguna manera si yo estoy de acuerdo al con lo que estoy viendo por Norma ya directamente lo que solemos hacer es descargarnos los cambios Porque si los cambios dieran algún problema con Lo que nosotros tenemos el local también saltaría lo que llamamos conflicto que solo vimos en la clase anterior tendríamos que resolver el conflicto y acabar Arreglándolo Okay gift Edge se descarga el historial si los cambios gitpool se descarga el historial y también los cambios Ahora yo hago git pool Cuál era el cambio que
nosotros teníamos en github que no teníamos aquí este fichero readmi punto md ahora voy a hacer gitpool lolans vale Y nos dice bueno quizás tú puede que tengas aquí algún problema lo que sea nos está fallando nos está diciendo Vale qué quieres hacer tú con todo esto no nos llega tampoco con ese git Bull inicial nos dice Tú tienes diferentes ramas vale Y tienes que reconciliarlas de alguna forma y nos dice venga haz algo para poder de alguna forma configurar cómo quieres que funcione toda esta parte y aquí nos lo dice de alguna forma que
lo podemos Mergear lo podemos de alguna forma combinar vamos a leerlo con mucha calma nos dice que nosotros podemos configurar por defecto qué es lo que queremos hacer recordáis cómo teníamos que hacer un poco todo el proceso el pool el nombre remoto es origin este alias y la rama era Main lo voy a lanzar así hoy y nos dice por aquí aún no lo tienes muy claro Fíjate en lo siguiente vale Fíjate lo siguiente porque aún así tú me estás especificando A dónde Quieres ir pero yo aún no tengo el mecanismo concreto porque aquí lo
que nos dice es venga Define de alguna forma cómo quieres hacer nosotros decíamos que por defecto lo que queremos hacer es un merge y vemos git config vamos a lanzar esto y ahora vamos a lanzar otra vez el pool a ver qué pasa en este caso vemos algo que nos dice por aquí vale fijémonos lo que nos dice por aquí fijaos lo que hemos hecho tenemos que indicar la primera vez que estamos Intentando traernos cambios de un repositorio remoto tenemos que indicar cuál es el mecanismo por defecto para traernos los cambios el mecanismo por defecto
que yo recomiendo es el de emergeado por qué porque al final Nosotros siempre nos obliga asegurarnos de que tenemos bien lo que tenemos el local y lo que tenemos es remoto eso es esencial porque los otros son mecanismos habéis visto que ponía ifas Forward rebase son mecanismos un poco para Asumir que todo está bien entre comillas se verá un poco Qué significa esto pero el mecanismo de base yo lo haría con el merge vemos lo siguiente y nos dice vale vas a emergear Dame un mensaje o haz algo con esta parte Bueno aquí ya sabéis
que directamente nosotros podríamos guardar el mensaje estamos en un bim directamente con los dos puntos q podríamos decirle Ok yo lo confirmo Me parece bien ese proceso de emergeo que tú estás intentando hacer de alguna Manera y qué nos dice Esto vale hemos implementado una estrategia de merge y ahora ya nos hemos traído los cambios Cuáles son los cambios que nos hemos traído un cambio y una inserción nos vamos a local el ritmi ya está por aquí el ritmo que nosotros teníamos arriba que nosotros teníamos en este repositorio ahora también lo tenemos en local es
decir ya hemos establecido el flujo completo de poder hacer cambios en local que alguien los haga en otro lado De sincronizarnos y de que al final siempre estemos trabajando muy importante para hoy git Push git pool git si de verdad queréis ver un poco sobre el estado de los cambios con esto ya sería suficiente para establecer todo un flujo de trabajo primero local y después es remoto la cosa queda aquí no queda aquí vamos a ir a seguir avanzando ahora que por lo menos ya hemos explicado esta parte [Música] Imagínate que ahora somos otro miembro
del equipo en otro ordenador y que acabo de entrar hoy al equipo voy a entrar al equipo y voy a empezar a trabajar con un repositorio con lo que sea cómo podría hacer para Descargarme todos esos cambios claro Yo no tengo las cosas en local Soy nuevo en el equipo me han dado un ordenador completamente nuevo y me dice Mira te unes a este equipo que se llama Hello kit y tienes que descárgate el código y empieza a trabajar con él Nos podemos Descargar el código a mano fijaos hasta tenemos un dolor zip por aquí
pero tenemos la posibilidad de empezar a trabajar con el control de versiones de git que eso es lo que nos importa si le damos aquí el botón code ya nos dice algo Ey Puedes clonarlo puedes hacer algunas cosas con un cliente de github podrías hay un githuke por si queréis trabajar de una forma muy cercana con la consola de github por supuesto lo podéis clonar por TPS o lo Podéis clonar por sh nosotros estamos trabajando con sh a día de hoy el https ya casi deberíamos olvidarnos de él porque eso nos implica ir poniendo la
contraseña etcétera vale con el sh lo que hablamos nuestra máquina queda asociada a un repositorio concreto y nos dice esto ssh con esta URL vale me voy a mi escritorio y voy a crear otra carpeta me voy a crear por aquí una carpeta que se llame My project sin más por qué esta es la carpeta donde yo voy a trabajar o que no quiero crear ninguna porque quiero ya directamente utilizar la carpeta que se ha creado en github lo que sea bueno cómo se llama este proyecto Hello guión git muy bien me voy a mi
terminal me abre una nueva me voy por ejemplo al escritorio y digo Aquí quiero de alguna forma bajarme los cambios de ese repositorio remoto pensar que yo ya no soy el Usuario de antes que tenía todo el proyecto local Yo soy otra persona en un ordenador nuevo escribo git Clon y meto la URL que me estaba diciendo aquí en repo si estoy por http la URL cambia ligeramente si estoy por sh y yo la autenticación con el repositorio porque yo tengo permisos va a ser por sh si fuera por hps Pues sería con el TPS
No pasa nada pero ya digo que yo recomiendo trabajar así muy bien hago esto y me dice clonando Hello kit parece que se Está aquí descargando cosas y ha acabado que tengo ahora aquí de repente una carpeta que se llama Hello git como se llamaba el proyecto que tengo aquí el proyecto exactamente lo que estaban qué tengo de esta manera una copia sincronizada del proyecto con el repositorio base que es el de github y yo aquí Podría empezar a trabajar de hecho podría mos hacer incluso la prueba que yo ahora vengo por aquí y podría
estar cambiando cosas diferentes en esta Carpeta y en la otra carpeta donde yo tenía mi otro proyecto vale estas dos carpetas para el clon no necesitas autenticación ese repo depende Si es un repo público y tienes permisos de lectura Sí si es un repo privado pues Puede que no todo depende un poquito de eso [Música] vamos a repo aquí arriba y vemos New hello git qué pasa con esto Este es el último paso Este es el último paso que Teníamos aquí fijaos que lo que hemos hecho antes es sincronizar todo y sincronizarlo nos exigió un
merge y ahora el Hello kit este tenemos que dice Hello gija pero lo que nosotros tenemos arriba es hello git pensar que lo primero que hicimos fue la parte del merge vamos a venirnos aquí y vamos a hacer un git estatus y vamos a revisar vale parece que está todo bien pero te faltan por publicar cómics ya nos hemos sincronizado el local Pero qué es lo Último que nos falta lo último que nos falta ahora es que también lo que nosotros tenemos el local una vez hemos liberado los conflictos con el remoto ahora subirlos cómo
subimos antes los cambios lo hicimos con el Push me voy a venir por aquí vamos a hacer git Push vamos a subirlo y vamos a ver cómo parece que hace algo me vengo por aquí recargo y ya vemos Hello y ahora en este fichero ya hay dos personas que han contribuir que han contribuido mouredé El otro día cuando lo creo y hoy braismore que es el que lo actualizó este fichero por supuesto podemos ver el historial mauré hizo algo braise moure ahora hizo cosas tenemos absolutamente todo incluso también lo podríamos tocar aquí arriba si quisiéramos
flujo completo ahora mismo [Música] vamos a la siguiente parte porque os quiero dejar un ejercicio antes de la siguiente clase Ya digo esto puede ser Muchos conceptos pero es algo que hay que ir repasando poquito a poco pero como quiero como quiero que practiquéis vamos a ver ahora Cómo funciona el flujo colaborativo en gija pensar que yo estaba aquí con el usuario price maure pero yo en realidad me voy a ir a mi usuario moredeth vamos a buscar esta urls no tiene permisos para escribir en muredev vamos a repositorio Hello git el de moureth este
repositorio este repositorio donde de alguna manera Estábamos reflejando todo el contenido del curso yo ahora quiero Descargarme este repositorio podría descargarmelo podría descargarmelo me voy aquí por ssh vamos a venir por aquí en este caso me quiero descargar mouredev voy a borrar este proyecto que teníamos antes me da un poco Igual me vengo por aquí al escritorio y ahora me voy a hacer un git Clon pero me voy a hacer click Clon de un repo que no es el mío git clone lo lanzo me lo ha clonado Ok Perfecto aquí tenemos esto que es este
repositorio genial y yo ahora como soy muy listo me vengo me abro el ritmi y lo voy a cambiar y le voy a poner Hello Jajaja porque me río porque te voy a cambiar el documento Vamos a entrar en la carpeta git hoy git Perdón CD Hello kit este Hello kit en minúsculas vamos a ver lo que tenemos aquí Esto es lo que acabo de cambiar y este estatus me dices has modificado el fichero rítmi efectivamente Guitart read me porque lo voy a subir git commit menos m y pongo me río de ritmo del Ritmo
lo pongo por aquí ya está que me falta tengo que hacer un Push dice dónde vas braise dónde vas braise moure intentando subirle código a mouredev ni ssh ni ni leches tú estás intentando subir código a un repositorio en el que no tienes permisos si yo añadiera el ssh dentro del usuario moured podría subirlo pero ya sabéis que Estamos con el usuario braise maure que es con el que estoy trabajando yo y ahora estaba haciendo algo con el código de moureth Ahora aquí es donde entra el verdadero flujo colaborativo de githga el verdadero flujo colaborativo
es que vale si tú ya tienes permisos en el proyecto genial trabaja con él como si fuera tuyo pero qué pasa si yo no tengo permisos en este proyecto aquí es donde entra lo que se llama la bifurcación el fork yo no estoy en mi Repositorio recordar aunque veáis mouredev yo ahora mismo Estoy autenticado con el usuario brainsmoury pero yo sí que quería hacerle estos cambios la verdad yo sí que quería hacer estos cambios Cómo puedo de alguna forma indicarle a mouredé que bryce moure quiera hacer cambios pues aquí es donde entra el flujo principal
de trabajo en giza Qué es el flujo del forc aquí arriba en un repositorio si vosotros queréis hacer Una copia de ese repositorio y no tenéis permisos en el repositorio para después subirle cambios lo correcto es esto Vamos a darle al botón fork y a ver qué nos dice dice vale el botón Ford para lo que te va a valer Es que de alguna manera tú puedes hacer un Clon de repositorio de moureth pero en tu repositorio porque claro como vas a hacer una copia en tu repositorio ahí sí que ya rompe lo que quieras
o cambia lo que quieras porque no le va a afectar a Moureth qué nombre le quiero dar ya tenía justo el nombre de Hello kit que es el que hicimos de pruebas Pero no pasa nada voy a poner aquí Hello git moureth me lo puedo clorar con todo copiar la rama Main lo que sea si me quiero copiar todas las ramas lo que me dé un poquito la gana de momento yo solo me voy a copiar la ramame y ya está y le voy a decir a create fork qué tengo ahora Aquí tengo exactamente lo
mismo he copiado lo que tiene moureth Pero si nos vamos a repositorio de moureth vemos que está colgado en moure de barra Hello git y en cambio Aquí estoy en price maure barra Hello kit Mode Pero tengo una copia exacta tengo exactamente una copia de lo que está en el repositorio de moureth cuál sería el siguiente flujo ahora que he hecho el fork ahora que ya tengo una copia la que yo podría hacer lo que me diera la gana ahora sí que me lo voy a descargar me vuelvo a la terminal vuelvo a hacer me
Voy al escritorio y hago git Clon pero ahora El git Clon ya no se lo hago de mugredev lo hago de repositorio que yo ahora tengo en github en mi propio usuario que es price moure/ Hello se descarga ahora lo tengo por aquí claro Hello it en realidad es lo mismo ahora me abro este fichero recordar que yo aquí quería hacer algunos cambios o lo que fuera bueno no quiero ser tan tan Hardcore No no quiero ser tan Hardcore y no quiero cambiar aquí directamente pero Igual lo que quiero hacer es Añadir un nuevo fichero
[Música] vamos a Añadir un nuevo ritmo un nuevo archivo de Madame Vamos a entrar en Hello kit Hello Good y voy a crear un nuevo fichero touch y le voy a llamar por ejemplo Hello venga le voy a decir Hello punto md porque también va a ser un bardown listo tengo aquí un nuevo fichero Hello punto y media lo voy a abrir con más down porque lo puedo Editar de una forma más rápido pero yo ahora mismo Estoy trabajando en local y os voy a decir por aquí sí estás participando participando en el curso haz
un Ford del proyecto añade tu usuario de y añade y añade tu usuario de github en una nueva línea y añade tu usuario de github en una nueva línea como para saber el listado de los usuarios y yo ahora vengo por aquí y digo pues bryce igual un puesto muy grande no vamos a hacerlo Así que se vea un poquito más pequeño y de hecho vamos aquí ya tengo esto he tocado el fichero un fichero que no está en el repositorio principal OK Yo sigo en el repositorio de mugrede Vámonos por aquí Clear git status
qué tengo en mi repositorio ahí un nuevo fichero guita vamos a Añadir esto y ahora voy a hacer un cómic git commit o un mensaje el mensaje es se añade un fichero para que salude la comunidad con mi techo ya creado un cómic Vámonos a git por aquí Está obviamente está el fichero no lo está que nos falta git Push vamos a subirlo subido Hello punto md aquí tenemos si estás participando en el curso haz un Ford de proyecto bla bla bla ya tenemos nuestro fichero subido Pero dónde se ha subido esto se ha subido
aquí en moureth barra Hello kit no es decir aquí sigue estando sigue sin estar el Hello punto md sigue sin estar el Hello punto md porque yo donde lo he Subido es en el repositorio que yo he creado a partir de un fork de repositorio original qué será lo siguiente Ahora aquí queda como un último paso Qué es que en el momento que ya tenemos todo esto yo podría solicitar de alguna forma que ahora me gustaría que repositorio original tuviera este código porque me parece muy útil lo que yo Acabo de crear y ahora quiero
que de repositorio en el repositorio de mouredev que yo no puedo Escribir recordar yo no puedo escribir de alguna forma lo pudiera enviar y ahora es donde sigue el flujo colaborativo primero hemos hecho el fork para poder hacer una copia y retocar el proyecto pero ahora lo que queremos hacer es enviarle Este cambio el Hello punto md queremos enviárselo A mouredev lo primero que debemos de hacer siempre es esto sincronizar nos sirve para de alguna manera este repositorio que ha sido Creado a partir de un original Se mantenga sincronizado con el original si yo ahora
cambiará algo me repositorio de moredev aquí me dejaría hacer un sync para decir Hey lo de siempre quites un sistema seguro vale braise maure tienes todo correcto en tu repositorio antes de intentar interactuar con el de moureth una especie de merge una especie de merch Pero entre repositorios de usuarios distintos aquí me dice lo tienes al día no pasa nada no se ha Hecho nada en otro repositorio no pasa absolutamente nada veremos en la siguiente clase un ejemplo de también como cambio cuando yo lo cambie pero de momento lo dejamos en el caso fácil [Música]
Cuál sería la forma de contribuir como tal al otro repositorio irnos a la opción de contribut y aquí entra el siguiente gran término de github aparte del fork es la Pure request lo que se llama de forma abreviada PR dice quieres Contribuir tienes un cómic hay un cómic que tú has creado por delante de donde se ha quedado el proyecto original quieres abrir unaquest sí y qué he hecho yo he creado un cómic donde he metido un fichero Hello punto md que tiene este texto que tiene mi nombre de usuario y que dice en el
cómic se añade un fichero para que salude la comunidad A dónde quiero hacer esta currícuest A dónde Quiero enviar este código para que se añada repositorio Dónde estoy Head repository brains Este es el mío de mi propiedad pero a quién le quiero enviar este código se lo quiero enviar a moureth Barra Hello git que es el repositorio original donde yo quiero que estén los cambios ya tenemos todo esto podría dejar un comentario y digo ejemplo de PR o de puquest tenemos Todo esto le doy a crear curricuast se ha creado y me dice muy bien
Yo he enviado la porriquest pero el estado en Principio es que nadie ha hecho nada con eso Vámonos a mugredev aquí estoy logueado como ureth vamos a refrescar la página es repositorio original que me aparece aquí en decir Alguien ha solicitado Añadir código o retocar código de tu repositorio Quién ha abierto la primera un talbraismore que nos dice se añade un fichero para que salude la comunidad yo como revisor digo vale vale a ver me has dicho esto y dices que esto es un Ejemplo de puerrico es y a ver qué qué quieres traer a
mi repositorio a ver Qué cambios hay Ah vale me quieres Añadir un fichero que se llama Hello punto md que dice si estás participando digo ostras qué buena idea Así hacemos que la comunidad de alguna forma pueda practicar este flujo pues qué quiero decirle Pues venga te voy a dejar un comentario te voy a probar te voy a decir que lo quieres cambiar Este es el flujo colaborativo Este es el flujo del Open source como tal Quiero dejarte un comentario a secas Quiero aprobarte el cómic te quiero decir Ok me parece Guay lo que has
hecho y también te lo noto o está mal lo que me has enviado y te voy decir voy a pedirte cambios porque así no lo quiero pero si cambias esto esto y esto sí que te lo acepto pues lo voy a probar y le voy a decir a braismoury me parece una idea genial apruu Listo vámonos donde braismoury vamos a el flujo de request ostras si me ha Contestado El Gran maureth y me ha dicho me parece una idea genial vale yo ya sé algo digo jova qué Guay han aceptado los cambios que yo he
propuesto y me dice que encima no hay conflictos para que mis cambios se puedan integrar en la rama principal pero a moredé le falta una cosa que es esto vale Ya las has aceptado está OK pero falta que estos cambios se vean reflejados cómo hacemos que se vea reflejados la persona que mantenga el repositorio o que sea la Dueña de repositorio tiene que hacer mergequest mergelo combina la rico es con lo que tú tienes y ya nos dice no hay conflictos si hubiera conflictos Igual también habría que solucionarlo nunca nos va a permitir mezclar código
que dé problemas Entre él porque os habéis machacado la misma línea habéis creado borrado lo que fuera y eso afecta nunca nos va a dejar nos dice que todo está OK merge Quest qué quiero dejar como comentario nada el que me dejó Brycee que lo va a mergear que se añade un fichero y lo confirmo lo he confirmado esta purriquest ya dice que está marjeada te ha cerrado me voy por aquí ya lo tenemos automatizado la pur rico es está cerrada ya no tienes ninguna pendiente decir lo que tú has solicitado está Okay y lo
que tú has solicitado se ha añadido a repositorio destino vamos a abrirnos al código de repositorio original de moredev qué tenemos Ahora aquí un fichero llamado Glvmd que dentro tiene lo que en realidad ha enviado bryce moure esto no lo ha hecho [Música] flujo completo en git flujo completo en github para trabajar de una manera colaborativa Esta es la manera en la que trabajamos con los retos de programación de la comunidad y yo ahora lo que Os pido es que para practicarlo hagáis esto quiero empezar a recibir un request en el proyecto principal no en
el Secundario el proyecto secundario Igual hasta lo borro es decir ya el usuario este price maure es un usuario de pruebas sin más pensar que repo bueno es este donde yo tengo toda la información y donde yo toqueteo todo ahora lo que quiero es que de aquí hasta la próxima clase o cuando sea en el momento que estéis viendo Este vídeo No pasa nada vamos a empezar Añadir en este fichero mediante Pull request clonando vosotros el repo con Ese fork previo tocando el fichero metiéndome a mí la purriques y yo teniendo la que aceptar vamos
a ir añadiendo aquí el nombre de usuarios que están tomando el curso y que habéis llevado a cabo esta práctica qué os parece eso hay de alguna forma como cierre de clase aún falta conceptos Esto no es todo git happ vamos a ver más conceptos de github en la siguiente clase pero bueno aquí me quería quedar con esta clase hablando de los conceptos Principales con todo lo que hemos visto hoy prácticamente podéis trabajar en cualquier proyecto de software llegado a este punto es decir tenéis los conocimientos básicos de git y de gija hacerle proyecto y
quiero empezar a ver también nombres de usuarios os parece bien os parece bien así es una pequeñita práctica pero que bueno que os obliga a hacer todo si hacéis esta práctica hacéis todo el flujo de git y todo el flujo de git hap P hacéis un kit estatus un Guitar un incógnito un Push la tenéis que hacer un fork tenéis que hacer una pur request tenéis que hacer un Clon en vuestro local todo tenéis que hacer Prácticamente todo [Música] la última clase Qué pasó en la última clase en la última clase os propuso un ejercicio
Estuvimos viendo todo el flujo de vale ya estamos en giftcap ya estamos trabajando en github Qué pasa si yo Quiero de alguna forma aportar algo en un repositorio de código abierto ya quiero participar ya quiero colaborar o ya no solo eso que yo esté trabajando en un equipo o lo que sea bueno entonces tuvimos viendo un poco Cuál es el flujo de githgam cómo si nosotros tenemos permiso dentro de repositorio pues trabajaríamos como con un repositorio normal nosotros tendríamos el permiso la rama que sea y podemos empezar a hacer un Push de nuestros cambios lo
que sea Bueno sin ningún problema eso es como la parte más sencilla Pero cuál es la parte más especial de github que github está pensado para que sea 100% colaborativo y que tú tengas su repositorio público y que gente que igual no tiene ni permiso en ese repositorio público pues de alguna forma pueda colaborar también en él un poco todo esto es lo que se basa la filosofía de código abierto en muchos casos vale el ejercicio para practicar todo este flujo era el siguiente yo lo Que hice fue Esto vale todo lo que hice fue
esto me vine por aquí os cree un fichero que se llama Hello punto md por macdown Y en este fichero lo que yo sí sé desde otro usuario de github fue lo siguiente añadí mi nombre el otro usuario de github con el que yo me loguee era este que tenemos aquí price Mauri cree este fichero y después yo desde otro usuario le añadí mi usuario y cómo lo hice Pues con un proceso completo en gift Card nos vamos a Repositorio le hacemos un fork a este repositorio que es la manera como de hacer una copia
este botoncito que veis aquí arriba fork es como una manera de hacer una copia de este repositorio pero en nuestro repositorio Este es el usuario mouredev pero ahora Aquí tengo el usuario price vale si me habéis cambiar os digo con Qué es cada usuario veis que este usuario aquí estamos en braismore/ Hello kit moureth Este es un fork de moredevra Hello git Entonces como yo me lo copio a mi repositorio yo puedo hacer lo que me dé la gana en este repositorio como si Quiero borrar todo cambiarlo todo lo que quiera pero una vez hago
los cambios puedo tomar dos decisiones hoy Yo sigo trabajando en este repositorio porque va a ser para mí o lo que sea o yo puedo solicitar que mis cambios pasen a repositorio principal cómo hacemos para pasar el repositor principal de alguna manera pues bueno es bastante simple Para pasar a repositorio principal lo único que tenemos que hacer es aplicar el concepto de Pull request Qué es el concepto de purriques Pues precisamente es esa solicitud Yo he hecho en mi fork en mi repositorio unos cambios sobre el proyecto que he copiado originalmente de otra persona de
la persona que lo ha creado y Solicito que esos cambios se añadan a repositorio principal entonces en el momento que nosotros que hicimos unos cambios pues podríamos hacer la Solicitud de público es hicimos la solicitud dequest y aquí se aceptó y como se aceptó nosotros lo que acabamos viendo es este nombre braismoure que se creó desde otro usuario de github acabó aquí y la práctica que os solicité de alguna forma era esta que me fuerais haciendo fork de este proyecto principal que es el proyecto donde está la documentación del curso y que añadierais en el
fichero Hello punto md vuestro nombre de usuario y me fuerais haciendo Por request yo he ido aceptando durante estas semanas lasques y ahora aquí lo que tenemos es el listado de toda la gente que fue modificando el fichero que me fue solicitando Añadir su nombre y que yo he ido aceptando Vale y entender que muy request no es lo mismo que un Push vale no es lo mismo que un puig nosotros hacemos un Push Eso es todo el flujo de git cuando hablamos del concepto de purp request ya hablamos y de Ford ya Hablamos del
concepto de conceptos aplicados a git Pero dentro de github porque ya es como funciona la propia plataforma para permitir esta colaboración entendiendo esto si seguís la clase anterior podéis ver cómo funciona todo ese flujo de colaboración que también es el flujo de colaboración que utilizamos en los retos de programación en esta actividad que Hacemos todas las semanas de retos de programación donde vosotros envíais Soluciones a los retos lógicos que Yo propongo vosotros la manera en la que hace en la que podéis enviar vuestras soluciones es siguiendo este flujo de github mediante el fork y mediante
la CURP request por eso lo hice la semana pasada y quedó todo grabado en la clase Qué pasa o qué me estaba encontrando yo cuando llegamos por aquí que si nos vamos aquí a las opciones del proyecto pues mirar alguien hasta me abrió una Isuzu por ejemplo aquí esto es que Alguien me ha abierto como un posible error que podemos tener en nuestro esto es un flujo también propio de github es decir vale Yo no te voy a aportar código o yo no te voy a aportar una corrección ni nada raro pero he detectado un
error abrace tenlo en cuenta porque igual tienes mal algo en tu repo Bueno pues esto Será algo que yo tenga que revisar a ver qué pasa con de alguna forma que es esta y su si tiene sentido si no tiene sentido se la revisaremos le Echaremos un ojo y veré qué puedo hacer con ella pero ahí nos vamos a centrar en esta parte cuando vosotros hacéis un fork hacéis una modificación y me solicitáis una curricuest es decir Añadir ese código que vosotros habéis modificado en este que es el repositorio principal a mí me aparece de
esta manera como curryquest entonces vemos que ahora mismo tengo cuatro CURP request sin aceptar al tener cuatro currículum sin aceptar Qué significa significa de Alguna manera que yo tengo este código para revisar y decidir qué quiero hacer con él vamos a abrir uno ya veis que están las solicitaba que metierais vuestro usuario nada más imaginaos que es código de funcionalidades de corrección de vags de lo que sea qué está pasando aquí qué tenemos en este punto Bueno pues tenemos lo siguiente lo que nos vamos a encontrar en este momento es que nos dice que al
intentar revisar una puquest hay un error Por qué Porque claro os pusisteis a hacer fork en un momento concreto del tiempo en un momento concreto del tiempo en el que el repositorio tenía una serie de datos el listado este de usuarios pues tenía una serie de listados Pero qué pasa que yo he ido continuamente añadiendo nuevas purriques he ido haciendo modificaciones con lo cual para aceptar vuestra público es me dice github Ey tú no puedes mergear tú no puedes Añadir el código que te han solicitado en el repositorio Principal porque de verdad hay errores vale
vamos a ver los cambios tenemos Aquí Cuál ha sido el cómic el cómic Simplemente nos dice venga un título para un cómic Y qué tiene Pues un fichero y que hay en ese fichero pues este usuario que se llama el hereje tiene por aquí su usuario añadido es decir esto es correcto este usuario ha añadido en el fichero Hello punto md nos dice por aquí su usuario Pero entonces se ha añadido su Usuario que pasa que está mal aquí por qué nos dice que hay un conflicto pues mirar esto tendríamos formas de descargarnos el estado
de repo corregirlo local lo que fuera pero ya que este es un flujo propio de github yo lo que recomiendo Es que siempre lo reviséis utilizando github porque lo Vais a entender muy bien cuando ya tengáis muchas prácticas mucha práctica pues ya lo podéis hacer de muchas maneras vale pensar que los flujos de Git ya más o menos los hemos visto vamos a ver lo que pasa aquí nos dice resolver conflictos Pues venga vamos a pinchar sobre conflictos porque nos dice que mira esta rama tiene un conflicto que debe ser resuelto de alguna manera vale
Y nos dice que puedes utilizar el command Line dice qué tienes que hacer el comalline fijaos Pues que de alguna manera nosotros podríamos indicarle desde omandos como estábamos trabajando hasta ahora simplemente hacemos un Checkout y podríamos mergear esta rama que se llama el hereje Main podríamos mergear Su contenido en él y ahí tendríamos que resolver los conflictos como ya hemos visto a lo largo del curso que se puede resolver los conflictos desde el propio código vale no hizo sync no quiere decir que no hiciera sincronización eso veremos también el concepto de sincronización lo que es
ahora seguramente esta persona lo hizo perfectamente pero qué pasa que el Repositorio siguió avanzando y ahora veremos Cuál es el conflicto nos vamos por aquí a resolver conflictos y vamos a ver esto el usuario cuando íbamos o cuando yo acepté la pur rico es de Germán y añadí a Germán en la línea 59 después llegó este nuevo usuario el hereje y añadió en la siguiente línea su usuario Pero qué pasaba que yo ya había aceptado toda esta gente Entonces cuando él añadió su Usuario todos estos nombres no estaban en el fichero desde que desde el
que él hizo fork igual él en ese momento Estaba totalmente sincronizado su repositorio con el mío pero claro yo seguía avanzando y él me envió la currícuez si yo hubiese atendido la currícuez en el segundo uno cuando él la envió y yo no hubiese aceptado otras currícules por el medio seguramente no había ningún conflicto pero claro yo he ido aceptando todas las público es Que estaban antes de las de este usuario mirar yo acepté Pues bueno lo que hay aquí pues vente público este por el camino con lo cual lo que acaba generando el conflicto
Es que en la línea donde este usuario añadió su nombre pues claro ya hay otro usuario y me dice aquí el propio gridja me dice vale en la main en la rama Main de este usuario acaba aquí es decir tiene todo esto que no hay ningún conflicto y su usuario pero este esta línea entra en Conflicto con todo lo que tú ya tienes en tu repositorio que es que tú ya tienes todos estos usuarios añadidos Entonces qué quieres hacer qué está bien qué está mal Cómo lo quieres modificar y aquí tenemos que hacer pues podemos
hacer varias cosas podríamos indicar directamente que nos quedamos con todo fijaos aquí nos dice que hay un conflicto y aquí incluso podríamos ver el conflicto si tuviéramos más Navegar entre conflictos e incluso aquí Podríamos decir Vale pues modifícamelo házmelo de alguna manera muéstramelo de alguna manera cuando nosotros estamos resolviendo conflictos también lo que podríamos indicar es Pues venga me quedo con las dos soluciones júntalas o directamente me quedo con lo que está en el repositorio de este usuario o te quedas con lo mío o en realidad sí que hacemos un mix de ambas que es
lo que vamos a hacer en esta yo ya lo puedo hacer directamente desde gija por eso os Lo recomiendo que si al final los encontráis con una pur rico es si son conflictos en un repositorio en el que podéis escribir porque ese repositor de un proyecto de empresa lo que sea vale a resolver los conflictos como vimos en las clases anteriores pero si estamos hablando de un conflicto a nivel de currícules lo que yo recomendaría es esto que ya lo hicieras desde el editor Aquí vemos el problema y el problema en este caso es muy
fácil de solucionar yo Tengo este usuario que añadido su nombre pues yo me voy a ir al final del documento y lo voy a Añadir Porque los voy añadiendo todos al final y esto que simplemente es lo que nos indicaba que había un conflicto pues directamente me lo borro y ahora ya no tenemos ningún conflicto marcado ya he añadido su nombre al final y para mí esto es justo lo que yo quería así sería el estado del fichero sin conflictos Muy bien pues yo ya no tengo conflictos Tenemos aquí una opción que nos dice venga
márcalo como resuelto me vengo por aquí hice pues ya está resuelto me voy a ir a la Pull request vale me voy por volvemos a entrar aquí en esta y dice Uy resolver conflictos qué ha pasado entonces claro lo has marcado como resuelto Pero has hecho algo más no has hecho algo más venga vamos a volver aquí al conflicto me dice Hey tú lo marcaste Como resuelto pero no has hecho nada con él claro esta resolución tiene que acabar desencadenando en algo entonces Bueno lo vuelvo a resolver me vengo por aquí y le digo lo
marco como resuelto y una vez lo marca como resuelto qué tendría que hacer fijaos por aquí dice Vale ahora que ya lo tiene resuelto porque no lo comitéas estamos hablando lo mismo vale Así que vengo por aquí le digo vale Y en qué rama Estamos trabajando Estamos Trabajando la ramain sabéis que la ramame es como la principal en la que más ojo debemos tener porque es la rama donde teóricamente va confluyendo todo el código bueno de nuestra aplicación Pues como ya tenemos eso nos dice cuidado que vas a actualizar la ramain Yo estoy de acuerdo
y digo venga lo entiendo actualízalo y me está haciendo el merge con lo cual ya he comido Ya lo tenemos preparado Pero ahora ya sólo faltaría una cosa ya tenemos todo Bien me voy a revisar por aquí el fichero vemos que ya no hay ningún tipo de problema y como ahora ya hemos puesto el fichero digamos en un estado en el que no hay problemas o que github entiende que no hay problemas pues lo que podríamos hacer ya es merge Es decir yo ya tengo bien el fichero pues ahora sí sí o sí inclúyelo ya
en mi repositorio principal si nosotros vamos a repositorio principal aún no estarías tu usuario Entonces yo me voy a merge Podría cambiar el texto dejar un comentario cerrar la puerta es lo que fuera porque al igual que yo estoy aceptando estas currícues Imagínate que lo que nos envía el usuario no nos vale podríamos dejarlo un comentario y decirle venga haz esto o incluso decimos este código No es que no aceptamos por request no nos vale lo que sea lo podría cerrar también o podría solicitarle incluso cambios al usuario te acepto la currículum si cambias esto
esto y esto Es decir podemos hacer todo un flujo de comunicación entre la persona que intenta hacer la currícuez y la gente que administra el repositorio donde llega la público es en mi caso está todo bien no le voy a comentar nada simplemente la voy a cerrar porque voy a confirmar este merge así que vengo por aquí lo confirmo y ya está está cerrado Vámonos a purpués había siete curricuas y ahora que tenemos una menos por qué Porque ya le hemos cerrado si ahora nos Fuéramos a la siguiente ya veis el flujo seguramente me va
a volver decir que hay un problema Cuál será el conflicto más de lo mismo aquí llegó loxecifer y veis ahora qué usuario ya aparece aquí el que hemos añadido antes ya nos lo da como uno de los usuarios que nosotros tenemos en el documento bueno vuelvo a hacer lo mismo lo corrijo fijaos teníamos ahora seis no voy a hacer todas Pero bueno para que entendáis un poquito cuál este flujo lo resuelvo hago el merge lo Confirmo se cierra semergia y ahora hay 5 en vez de 6 y este sería un flujo de empezar por un
lado lo que hemos visto enviar por request trabajando desde vuestro lado y por el lado del administrador que tendría que hacer ese sería un poco el flujo general y habitual cuando estamos trabajando en gija [Música] vamos a irnos al otro repositorio ahora estoy con el otro usuario no estoy con El administrador fijaos estoy con price maure Este es un usuario que se hizo un Ford este usuario existe un Ford para hacer esta modificación que ya sabéis que cuando yo envié el cómic con mi nombre etcétera lo que fuera cuál es el problema que alguien decía
antes por ahí en el chat es que no se sincronizó el código es que si yo ahora me vengo por aquí al Hello voy a ver el Hello vamos por aquí el Hello que tenemos de alguna forma me está indicando Cuál Es el estado de mi repositorio Cuál es el estado de mi repositorio brainsmoury aquí Oye pero vamos a ver espera Espera espera como braismore vamos a repositorio principal Hello punto md pero si hay un montón de nombres Cómo en este repositorio al que yo le hice un fork solo tengo un nombre qué ha pasado
aquí entre uno y otro pues que cuando yo hice el fork no había ningún hombre añadido y solo teníamos el mío que es el Que yo creé pero el repositorio ha ido avanzando Y qué pasa el propio github ya nos avisa nos dice Oye brais mira tú has hecho un fork Tú tienes tu propia rama basada en un proyecto principal de maureth pero que te has quedado 233 cómics atrás veréis dónde estás nos vamos a los cómics y empezamos a ver esto mira mira ha pasado todo esto desde que tú le has hecho un fork
Claro si yo ahora Quisiera hacer alguna Actualización y yo después le quiero devolver una Quest de alguna forma tenemos que estar sincronizados no le puedo enviar yo actualizar el fichero el umd imagínate con un nombre cuando ya se le han añadido 80 nombres más para eso algo muy fácil que tiene el propio github es lo siguiente la opción de sincronizarnos vemos aquí zinc nos dice Hey te has quedado atrás 233 cómics puedes compararlo decir lanzar Una comparación para ver realidad qué ha pasado porque igual lo quieres revisar porque igual no te quieres sincronizar Porque tú
estás haciendo cosas a tu rollo igual quieres comparar y quedarte con cosas concretas o como es mi caso no no no no es decir yo ahora quiero seguir trabajando pero me quiero quiero estar al día así que voy a actualizar le doy a update y me dice ya está correcto vamos ahora al Hello aquí lo tenemos ya tenemos al día tanto Este repo el del fork como repositorio original y ya sí que con esto tenemos un flujo completísimo a la hora de trabajar con github por las dos partes por la parte administradora por la parte
que hace el fork y después ya todo lo que haríamos desde local que sería pues ya los típicos comandos de git que hemos visto pues Cómo nos hacemos un clonado de repositorio como podemos trabajar crear ramas hacer un cómic un Push lo que sea vale ese sería un poco El flujo completo entendiendo este flujo completo creo que ya digo lo más básico de git Y de github lo hemos visto [Música] quiero recordaros muy rápidamente que en todos los casos y la forma más habitual en la que tenemos de trabajar con github es con estos ficheros
de documentación estilo mardam por eso la extensión está a punto md y por eso este Med que veis que aparece formateado con estos puntitos Aquí tiene como una cita pero que si yo me viniera a editarlo fijaos que pues tiene un mayor que por aquí unos asteriscos por allá y esto lo que acaba haciendo de alguna forma es representando de una manera visual un texto plano lo acaba enriqueciendo Vale Nos venimos por atrás igual que está creado todo esto pues con la imagen con los links con no sé qué vale eso es lo que se
llama mardown Vale y github acepta el estándar de mcdown pero tiene Algunas cosas que bueno deberíais tener en cuenta Por eso el propio github hasta tiene documentación para que podáis ver cuál es la sintaxis de mardon que acepta os pongo por ahí el enlace no os preocupéis porque también lo añadiré a repositorio principal para que tengáis esta documentación pero para que veáis que bueno si quiero poner un título pues con una almohadilla dos cinco ya veis Cómo va cambiando el tamaño después aquí abajo también tenemos venga Este es un Texto en negrita este es tan
cursiva este está tachado este es importante no sé qué Vale entonces podéis ver cuáles son esos diferentes formateos que le tenéis que hacer al texto para que se vaya viendo de una manera concreta en este mardown y lo único que tienes que hacer es un fichero punto md 10 y fichero punto md trabajar con esta sintaxis el fichero que se llama ritmi aquí.med por defecto en el momento que subís un repositorio a github y tenéis Un fichero que se llama ritmi md es el documento que va a mostrar en la raíz Por eso tenemos nuestro
proyecto más bien dicho este el proyecto principal en el que yo tengo un ritmo dentro pues tiene la documentación del proyecto y por defecto en github Ya se está mostrando Por aquí sí que también tenerlo en cuenta la importancia de los rítmi la importancia de documentar de alguna forma podéis tener todos los ritmos que queráis y podéis Navegar de La forma lacos de la gana por ejemplo en el proyecto de retos de programación tenemos diferentes ritmos enlazados y vamos haciendo muchas cosas así que digamos que no os limitéis a utilizar giftha para subir código sino
también documentar y que lo podéis hacer súper bonito también lo vimos el primer día que muy relacionado con los rimi está la página de inicio de vuestro perfil que os recomiendo a todo el mundo que os creéis un github a la de ya que esto es Como la red social obligatoria Si estamos en el mundo del desarrollo de software y que la podéis poner así de bonita todo lo que os guste de estos rímel acepta y acepta html el propio mardown acepta el formato html para que también lo tengáis en cuenta si queréis maquetar algo
mucho más complejo más bonito utilizando algunas cositas teniendo eso en cuenta saber que lo podéis copiar encontráis ahí un rítmico os gusta a Mirar cómo lo ha estructurado cómo lo ha puesto lo que sea pues os vais a editar os bajáis el fichero lo clonáis hacéis un Ford locos de la gana y así ya podréis ver cómo se ha matado porque aquí lo veis muy bonito pero si entráis al propio ritmit pues veréis Que obviamente no hay imágenes ni hay nada que lo que empezaréis a ver Pues será un montón de texto que está un
poco limitando todo lo que estamos viendo aquí lo veis no es tan bonito no es tan Visual pero que en cierto modo aquí hasta veis un elemento una tabla en html así de simple y aquí veis Cómo va un formateando todo para que se vaya mostrando una manera más visual [Música] algo que ya hablamos al principio y que incluso llegasteis a preguntar varias veces es la manera en la que tenemos de trabajar con git lo que vimos a lo largo de todo el curso es que con git se puede trabajar os habitualmente como Aprendemos a
trabajar con git es mediante línea de comandos todo lo que hacemos en git es línea de comandos tirando los comandos que hemos visto a lo largo de todo el curso pero yo os adelanté que la única manera la que tenemos de trabajar No es solo la línea de comandos sino que también podemos utilizar lo que se llaman pues herramientas gráficas no las herramientas gráficas No digo no voy a decir en ningún momento que las tengáis que utilizar o que no yo voy a decir mi valoración personal y es que yo entiendo git y github bien
me sé los comandos y entiendo perfectamente Cuál es el concepto de git si te llegáis este punto por ejemplo que es el punto que Vais a alcanzar Ahora cuando llegue este momento del curso que ya hemos visto todos los comandos principales y que el concepto de git y de github Espero que más o menos lo Tengáis claros y si no pues ya sabéis para atrás revisar practicar hasta que más o menos entienda en el momento que entendáis git yo lo que os diría es que podéis tomar la decisión de trabajar con lo que más os
guste Habrá gente que trabaje Únicamente con consola y Habrá gente que trabaje Únicamente con herramientas gráficas lo importante no es con lo que trabajáis lo importante es que de verdad entendáis el Por qué estáis trabajando de esa manera sé que Hay gente que va a decir no el programador de verdad solo trabaja con la consola sinceramente por favor eso son chorradas nosotros tenemos herramientas para utilizar la que mejor nos viene sin más y si existen 200 herramientas gráficas Pues será por algo será porque se usa No pasa nada prefiero la terminal la verdad Y es
que eso es 100% correcto pero lo que tenemos que hacer es respetar lo que usa cada persona yo Prefiero terminar usa terminal tú prefieres una herramienta gráfica herramienta gráfica porque incluso hasta dentro de las terminales o dentro de las herramientas gráficas hay variaciones vale me parece mejor con consola para que no se me olvide si estáis en el problema de que se os va a olvidar es que lo habéis aprendido mal es decir los comandos de git son 15 10 básicos si los tenéis claro no los Vais a olvidar utilicéis herramientas gráfica O utilicéis una
consola vale eso tenerlo muy presente verlo como dos herramientas que se pueden utilizar sin ningún problema os voy a poner mi ejemplo yo creo que me conozco bien cómo funciona git y yo trabajo con git desde herramienta gráfica y os enseñaré un poquito el porqué de estas herramientas gráficas y después cada persona que lo utilice si quiere o si no pero creo que está bien que por lo menos la vea las Veamos para que lo conozcáis tampoco y esto lo quiero remarcar mucho ahora no veáis las herramientas gráficas y digáis Ah vale jova qué Guay
así ya no me tengo que aprender nada no se trata de eso pueden ayudarte pero no no demos más pasos de los que de los que yo creo que es el concepto que debemos aplicar a estas herramientas estas herramientas no es para que no aprendamos git o para que no aprendamos git es para trabajar de una manera que Quizás se nos adecua más a nuestro flujo de trabajo y ya está Vale Cuáles son herramientas típicas vamos a ver algunas hay infinidad ya digo yo voy a utilizar yo voy a hablaros de unas de las más
comunes y vamos a comenzar por esta la primera de la que os quiero hablar es la propia oficial de una herramienta que se llama git hubdest esta ha sido creada por la propia gente de githga no es una herramienta súper profesional pero sí que es una Herramienta gráfica que creo que está bastante bien de toma de contacto con el mundo de las herramientas gráficas porque no tiene infinidad de cosas y tiene como los comandos más habituales para poder trabajar pues de una manera cómoda con una herramienta gráfica y lo vamos a ver ahora os la
podéis bajar para cualquier sistema operativo si queréis os leéis la página simplemente buscar github desktop y si queréis podéis leer un poquito la parte de la Documentación ya digo no os preocupéis mucho porque entendiendo cómo funciona git pasas a herramientas gráficas es bastante simple vamos a ver el concepto de guiza desktop aquí con gith desktop básicamente lo que haréis sea lo siguiente entrareis y os dirá loguearos con vuestra cuenta y en el momento que ya os lo veáis con vuestra cuenta si os va a cargar todos los repositorios que ya tenéis en github Digamos que
es una herramienta para trabajar en conjunto con todo el flujo de gija mirar hertz dice algo muy bien que es que para hacer algo rápido Está bien pero luego se queda atrás efectivamente porque es una herramienta que tiene los conceptos básicos pero cuando ya empezamos a entrar en flujos con git algo más complejos ahí se nos puede quedar un poquito corta pero como herramienta de aprendizaje está muy bien vale Y vamos a ver un poco el porqué de Todo esto ya digo Tenemos el listado de repositorios Entonces ya nos va a dar la posibilidad en
el momento que lee los repositorios que tenemos asociados a nuestro usuario de github de ya hacerle un Clon y nos lo podremos Descargar automáticamente simplemente haciéndonos clics o lo que sea o como es en mi caso lo que yo hice es el repositorio Hello git que yo tengo el local aquí lo veis simplemente lo he añadido Yo podría aquí Buscando el repositorio y añadirlo y en El momento que lo añado ya sabéis que este repositorio también estaba subido a gija Vale entonces tampoco tendríamos ningún problema fijaos cuál sería el proceso adlocar repository aquí en file
me voy a buscar repositorio me voy a ir al texto por ejemplo y voy a buscar Este ejemplo que es con el que estuvimos haciendo prácticas y le digo Venga añádelo pues en el momento que ya lo añado pues ya de alguna forma yo ya Podría empezar a revisar estos Repositorios aquí tenemos Hello git este Hello kit que veíamos por aquí vamos a ver el historial pues mirar Qué rápido por eso digo las herramientas gráficas en realidad podemos ver o a mí me gustan porque puedo ver muchas cosas con pocos clics y sin tirar muchos
comandos y de una manera muy gráfica pero aún veremos hasta dónde llega todo esto fijaos todos los cómics que hemos estado haciendo esto es como el log del propio git pero claro yo ya pincho aquí en uno de los Cómics ya veo el fichero que he tocado y ya veo lo que ha pasado que me he cargado la línea print y he añadido otra que era print login v2 y todo esto rapidísimo bastante fácil me voy a venir por aquí lo voy a abrir en visual Studio code y voy a meterle un cambio para que
también entendamos pues qué pasaría cuando en una herramienta de este tipo metemos un cambio me vengo a este fichero y el login v3 el login 3 v3 el Hello kit 3 v3 le voy a llamar v4 lo Edito vamos por aquí veis la parte de cambios ya nos dice un cambio recordar todo lo que teníamos que hacer en consola que tendríamos que ver el estatus ver si había algún cambio añadir los cambios me voy por aquí y me dice hay estos cambios qué quieres hacer Cómo es el stage esta parte decir venga quiero tener en
cuenta los cambios de este fichero pues simplemente con marcar el check es como pasarlo al propio área de stage así de fácil Siri aquí empezáis A ver un poquito Cómo es todo este flujo que después nosotros lo que queremos es actualizarlo subirlo lo que sea simplemente metemos por aquí un comentario y lo podríamos subir y ya diciendo Ahí estás con un usuario que no tiene permisos quieres hacer un fork ya veis nos va marcando el camino para que vayamos haciendo cosas que de verdad tenemos diferentes ramas si tuviéramos diferentes ramas podríamos verlas aquí en nuestro
caso pues solo tenemos una Rama que tenemos más ramas lo veríamos sin ningún problema que tenemos currícuez asociadas vamos al otro repositorio de git al de moureth vamos por aquí recordáis que en github teníamos cinco o seis veo ahora porque se ha abierto hace dos minutos aquí la veréis recordáis que teníamos diferentes sin atender pues mirar lo que pasa puedo consultar desde la propia herramienta de github desktop estas currícues y yo podría por ejemplo Cambiarme esta rama y empezar a ver pues Qué ha pasado qué se le ha hecho a cada uno y vemos aquí
como se intenta Añadir un este usuario como podría hacer algo con él como podría aceptar como podría acabar marcando todo ese flujo que yo hago desde la web incluso lo podría toquetear desde aquí y esto claro llegado a este punto pues es muy potente porque estamos viendo muchísima muchísima muchísima información en una sola herramienta pero sí que es cierto Que como también decías por ahí pues yo creo que creo que tiene ciertas limitaciones por eso vamos a ver cuáles son las que yo creo que son las verdaderas herramientas gráficas potentes vale vamos a ver las
herramientas que yo considero más potentes por un lado tenemos ya la tengo abierta pero si queréis Pues bueno buscamos la web git cracking Esta es una herramienta gráfica para mí es mi favorita y utilizo no tenéis que Utilizar ni github Niki Kraken lacos de la gana ya digo no no importa como tal Pero está bien que por lo menos yo os voy comentar las camisas me gusta vale aquí tenéis empresas que usan y crack que no sé qué bueno Esto es una herramienta verdaderamente profesional porque tiene un montonazo de cosas Si abrimos el Kraken que
yo lo tengo por aquí aquí lo veis ya tenemos el árbol de navegación de todos estos de todos estos cómics recordáis que Acaba de cambiar yo el Hello git el v3 por el v4 aquí lo tenemos puedo pasarlo al área de stage con un botón aquí abajo que no lo estáis viendo ya tenemos la posibilidad de hacer un cómic y en el momento que ya tengo el comité hecho pues yo ya podría hacerle un Push o lo que fuera ya veis un montón de cosas Si yo me vengo por aquí fijaos que esto no se
queda aquí vamos a repositorio de Hello git al Principal fijaos tenemos rama Main Tenemos aquí una rama PR con la PR que me habíais hecho que en la que aún estoy trabajando porque la acepté desde el propio github the stop qué más cosas tendríamos en la rama remota aquí tenemos cómo estoy trabajando las diferentes ramas todo lo tenemos aquí las Quest aquí las tengo cada una de las purriques podría ir revisándolas vamos a entrar en una currícuez y vamos a ver lo que pasa la está analizando vemos la pur request con las dos y nos
dice hay conflictos Ey Aquí tienes que hacer algo con los conflictos Pues venga Échale un ojo a los conflictos revisa los que fuera acéptalos por lo que vimos antes desde gija también lo podríamos hacer desde aquí las sisus recordáis que me tenían una ISO abierta Pues bueno podemos revisar por aquí la isu también Vale pues podríamos tener la sisus todas las sisus abiertas Aquí vemos la ISO ya la podemos visualizar por aquí que tuviéramos tags su módulos Que ya veremos lo que es esto todo una herramienta imaginaos llegado el caso todo lo que tendríamos que
hacer para poder visualizar absolutamente todo esto una pasada con comandos de guija que preferís trabajar con terminal ya digo sin ningún problema pero en mi caso me gusta mucho hacerlo con estas herramientas porque cuando estás trabajando con más gente y estás haciendo muchas cosas en el repositorio pues me gusta Me gusta tener este control sobre todo y tener tanta información ya veis sin necesidad de tirar comandos porque al final los comandos Aunque tengamos alias aunque los podamos escribir muy rápido o lo que sea pues bueno creo que no está mal no se trata de que
aprendamos como tal como funciona Porque la realidad es que funciona de forma muy muy muy muy fácil simplemente tenéis que encontrar bien Dónde están los botones pero lo vimos Antes por ejemplo aquí que yo ahora esto Me vale pues fijaos cómo sería el At sería pulsar en el botón stage en el momento que tenemos este stage Ya lo tenemos en el área preparado para subir Cómo le pongo un título cómo sería el cómic menos m Pues aquí le tendría que poner un comentario veis sumar y descripción incluso por si queremos hacer un comentario mucho más
grande mucho más potente Pues aquí pongo se actualiza a v4 cómo haríamos el cómic ya No está apareciendo el botón venga hace el cómic ya veis Guitar git commit menos m por aquí y ya lo tenemos me dice el Main el Main en el remoto está en este punto pero ahora acabas de actualizar esto pero claro no estás alineado con el remoto que nos falta Cuál es el siguiente Comando que tenemos que hacer una vez ya tenemos el cómic era el Push cómo hacemos Push aquí lo veis un botón pincho aquí y me dice Hey
hay un error Porque si recordáis yo estos los estaba haciendo con un usuario que ahora veréis maure y ahora no tengo cargado sus datos para autenticarme recordáis que esto es lo que vimos antes pues bueno lo pudiera si lo pudiéramos hacer nos acabaría haciendo el pulsar remoto que queremos haciendo un pool que queremos hacer un pool aquí tenemos el botón de Pool que queremos crear una rama aquí tenemos para crear una rama recordáis el stash el pop para dejar cambios de modo Temporal cambiarnos de Rama después volver a recuperarlos lo que sea que esto lo
vimos en las clases anteriores aquí tenéis estás y pop e incluso hasta podemos decir venga Sácame la terminal porque quiero tirar aquí unos comandos o Quiero ver el log o Quiero ver lo que me dé la gana todo esto lo podría hacer desde aquí incluso tenemos la parte para hacer y hacer cambios que vamos haciendo y podríamos tener que también yo creo que esto es importante en mi caso Trabajáis con varios proyectos ya veis tengo aquí el proyecto de retos de programación el Hello git El ejemplo y me voy moviendo por todos porque tenemos tabs
tenemos toda la información Vale entonces ya digo repito esto es mi gusto personal para nada obligo a nadie utilizarlo Si por nombrar otro par de herramientas muy importantes git Kraken si trabajáis con retos públicos funciona perfecto pero si trabajáis con repos privados tenéis que pagar por ello pero Para eso tenemos una herramienta otro editor visual que se llama soft Street ha sido creado por la gente de atalasia que os puede sonar la herramienta gira por ejemplo ya veis que es otra herramienta de otra compañía pero si os fijáis hija de stop Kraken Bueno pues más
o menos se van pareciendo y donde yo antes tenía el botón Push o pule no sé dónde yo ahora lo tengo aquí vemos también el árbol de historial lo que sea bueno pues con esta Podéis trabajar con repositorios públicos y privados totalmente gratis y ya la última de la que os quiero hablar es fork que esta es otra también bastante utilizada todas estas las tenéis Mac y Windows y alguna también para Linux vale Bueno lo vemos pinta que tiene muy parecida no árbol de navegación las ramas fechas Bueno al final pensar y lo vuelvo a
revisar o lo vuelvo a repetir Perdón que los comandos Típicos de git son 10 15 a lo sumo los hemos visto en este curso y que al final todo esto tenemos botones para hacer y lo podemos hacer con estas herramientas si yo me fuera alguna concreta mirar si yo hago botón derecho tenemos muchas más cosas vale copiar crear un tag Y antes preguntaba Quiero crear un tag aquí recordáis que teníamos El Comando de git para crear un tag y después comitear lo que sea pues puedo ya hacerlo desde aquí tenemos Patch vale los ribert que
Dijimos para deshacer cambios queremos crear una rama desde este punto hacer un reset todo lo tenemos aquí si queremos hacer cosas muy igual ahí sí que queremos sí que igual está bien tirar de terminal pero lo habitual es que con estas aplicaciones es que podéis hacer el 95% de las cosas que se hacen normalmente con git es queréis darle una oportunidad a este tipo de herramientas yo recomendaría que probéis herramientas Gráficas por un lado y probéis terminar por el otro y que no probéis herramientas gráficas sin antes entender bien cómo funciona la terminal y cuáles
son los comandos de git y cuál es el flujo de git una vez que tenemos esto pues ya la decisión Está en vuestras manos vale Y por supuesto Siempre tenéis la opción de las dos cosas Yo muchas veces pues utilizo las dos cosas según para lo que querramos de hecho os voy a comentar Después vamos a ver una cosa en la que a veces yo suelo utilizar consola preferiblemente para algunos temas vale pero incluso vemos aquí Fast Forward un rebase interactivo Cherry Pick Bueno veis aquí algunas cosillas que estas son como los comandos que todo
el mundo le tiene miedo al principio si veis y Cherry Pick y de esos también hablaremos pero que también sepáis que se puede hacer desde aquí sin ningún problema [Música] el siguiente punto que quiero tratar es cómo trabajamos con git o cómo me gusta a mí especialmente trabajar con git qué hemos hecho hasta el momento en el curso pues como mucho trabajamos sobre la rama Main o creamos algunas ramas pero parece que este flujo de trabajo sobre la rama Main voy creando ramas cambio cosas y después hago mer geos merch a la rama Main Pues
que puede ser un poco aleatorio no es decir parece que atienda Una regla que solo es crear ramas y ya está pero pensado pensar en que ahora nos vemos en un flujo de desarrollo profesional que nos vemos en un equipo en un equipo real con las necesidades que tiene ese equipo Cuáles pueden ser las necesidades de un equipo Pues básicamente que lo que tenemos en la rama Main es lo que se está desplegando a producción Pero hay un flujo que hay imaginaos en una aplicación grande por cinco personas trabajando en una Característica de la app
y otras cinco personas pues haciendo un refactos de otra parte y otras 10 personas trabajando en otra evolución y de repente ha saltado un error en producción que tenemos que corregir pero corregimos error de producción Pero qué hacemos corregimos ese error de producción mientras se sigue evolucionando la app o tenemos que emergear los cambios nuevos o hasta que estén los cambios nuevos no podemos Corregir el error vale Para eso existen diferentes flujos de trabajo hay muchos estudios muchos artículos y muchas formas de trabajar con git yo os voy a hablar de la que es la
común Y seguramente la más utilizada aunque ya digo que pensar que tenemos git y en el momento que tenemos git si somos capaces de establecer unas normas pues incluso os podéis inventar Cuál es el flujo de trabajo que vosotros queréis llevar a cabo en el equipo o que queréis utilizar Únicamente para vosotros mismos porque incluso recomendaría que aunque estéis trabajando un proyecto propio vale si estáis si estáis utilizando en un si estáis trabajando en un proyecto propio o estáis trabajando de alguna manera en algo que solo se influya a vosotros pero queréis seguir unas normas
yo recomendaría yo recomendaría que definierais esa manera de trabajar porque si no es un caos Aunque tengáis a git y a github que se va a ocupar de que Todo esté en orden Pues estaría bien seguir Pues no sé cierto orden en todo esto vale Cuál es el estándar ya digo no me voy a meter en que haya más gente que le guste menos gente que otra gente dice que se queda atrás que hay formas más ágiles no quiero discutir esto porque yo creo que en un curso de iniciación y un curso de fundamentos no
viene absolutamente a nada y yo sigo defendiendo que cada persona que tiene que utilizar lo que mejor se le adapta a Sus necesidades fin de la historia teniendo esto teniendo esto el más utilizado gusto no es el llamado git Flow vale tenemos como dos grandes formas de trabajar con git y con github por un lado es lo que se llama el git have Flow y por otro lado es lo que se llama el git Flow eso lo que está marcando son como unas reglas a la hora de trabajar con git para que si toda la
gente que trabaja con el proyecto o tú te conoces las Reglas Pues que sea aún más fácil que el proyecto esté bien estructurado vale Para eso os tengo aquí un artículo que quiero que le echemos un ojo muy rápidamente precisamente este artículo lo escribió la gente de Kraken la gente de la herramienta que os acabo de enseñar Vale y aquí nos dice Bueno una discusión un artículo que tienen por aquí que dice Bueno Cuál es la mejor estrategia para trabajar con ramas porque siempre trabajamos con ramas Vale Y aquí nos habla de diferentes nos dice
la estrategia de git flow pros y contras Cómo podemos utilizar la propia gente de Kraken y pensar que Kraken es una empresa dedicada a trabajar exclusivamente mejorar Cómo se trabaja con git y con githuja y la gente de esta empresa apoya a giflow Por eso digo que aquí entraremos a la discusión de que Google trabaja con git Flow y metano y al final son peleas que ya yo creo que va más en los gustos que que en La propia operativa del flujo vale Así que tenéis aquí una empresa dedicada 100% a git y que elige
que elige git Flow por eso encontraréis de todo por aquí y después también nos habla del githgaflow que quizá Flow es básicamente lo que hemos visto cómo vamos creando ramas fijaos aquí tenemos la rama Main Cómo se van creando diferentes ramas o cómo incluso nosotros podríamos crear los fork que es lo que vimos y como en realidad Cómo llega este debajo de las Ramas otra vez a la rama principal Pues llega a través dequest básicamente lo que vimos hoy cuando estábamos iniciando la clase Así que lo voy a explicar primero y después vemos algún ejemplo
bastante simple diría yo de cómo funciona todo esto para intentar entender cuál es la la base que rige este tipo de flujo para trabajar con git que es el más utilizado tengo por aquí otro artículo que os acabo de pegar en el que se os explica también Cómo Funciona el git Flow Vale y vemos que el Flow tiene diferentes formas de trabajar vale tiene diferentes formas de trabajar que vamos a ir viendo poquito a poco tenemos la rama principal la rama Main Esta es la rama que nosotros conocíamos y entonces de la rama Main lo
que sale Es una rama de velo en esta rama de velo Es una rama que en realidad todo lo que está en la rama de velo llegado el caso puede pasar A producción eso es un poco la máxima de esta filosofía de git flow Vale qué tenemos en la rama Main la rama Main no es como tal la que pasa producción sino la rama Main es la rama que versiona nosotros tenemos la rama Main con la versión 0.1 que vemos por aquí y en la rama de velo pues empiezan a aparecer estos equipos que uno
está desarrollando una cosa otra cosa otra cosa en otras ramas que ya veremos ahora entonces cuando van acabando sus desarrollos Estos desarrollos se van volcando todo sobre la imaginaos que somos un proyecto que tiene un ciclo de despliegue cada 15 días entonces la persona encargada de desplegar por lo que sea cada 15 días dice vale ha llegado tal día que nosotros siempre desplegamos cada 15 días la aplicación pues como sé que lo que están develo está bien está aprobado está testado es una cualidad nueva de la o una mejora o lo que sea que ha
pasado un proceso como Está en develop yo lo puedo pasar a producción Entonces se pasa producción y dices fijaos de la versión 0 1 han aparecido varias cosas Alguien ha metido algo nuevo en develop después otra cosa nueva y después una tercera cosa nueva y aquí decidieron desplegar entonces todo lo que está en develo pasa producción y se versiona cómo se versiona cerrando digamos un nuevo tag con la versión en este caso 02 Entonces se hace como una fotografía del momento exacto en el que Se ha desplegado velo en producción para así la rama Main
solo tiene esos puntos solo tiene fotografías en los momentos en los que se va desplegando la y vamos taqueando justamente esto los tags en realidad donde están funcionando aquí es la ramain para tener bien controlado cuando está ha pasado producción vale Cómo empezamos a realizar todas estas evoluciones claro hablábamos de que igual había un equipo cambiando las cosas y otro equipo cambiando otras y Otro equipo cambiando a otras que lo hacen todo sobre develo se empezarían a pisar conflictos problemas no aquí es donde sigue entrando los conceptos de git flow tenemos rama Main solo para
lo que pasa producción y tagear rama de velop que ahí es donde se van volcando todo lo que se va haciendo en el proyecto y lo que están develop es lo que puede pasar a producción en cualquier momento pero dónde se va evolucionando el proyecto como tal pues Se va evolucionando en ramas picture fijaos en la rama de velop estamos en este punto y llegó un equipo y dijo Pues yo ahora voy a desarrollar una feature que va a ser una nueva pantalla y ahora llegó a otro equipo que dijo pues yo voy a desarrollar
otra feature que es otra pantalla totalmente diferente y fijaos lo que pasa aquí este equipo que está trabajando en esta ficha aún no ha acabado le ha dado igual ha seguido a su rollo a nadie le importa y este equipo En realidad sí que ha llegado un momento en el que ha cerrado lo que ha hecho esta rama que vemos aquí ya ha finalizado su ciclo de vida se ha abierto a partir de develop han trabajado la nueva Fisher y la han cerrado y aquí en develops ha decidido desplegar cuando les ha dado la gana
pero claro le ha influido algo al equipo que está trabajando en la pantalla que aún no ha acabado para nada porque están Trabajando en otra rama Ahora cuando acabe este equipo lo que sea Pues tendrá y cuando pase todo el proceso de testing de validación lo que sea pues esta rama le pasará como esta de Fisher también se cerrará y volverá develop y develop se podrá seguir desplegando y haga lo que haga en esta nueva feature tarde lo que tarde en esta nueva feature tenga las dependencias que tenga no pasa absolutamente nada Deep la rama
de dep en realidad nunca se cierra la rama de Maine nunca se cierra y la rama de deb nunca se cierra la rama que hemos visto hasta el momento que se abre y se cierra es esta de ficha por qué geek Flow porque esto lo podíamos pensar Mira yo esto ya lo puedo hacer con git voy haciendo git Branch voy abriendo unas ramas después voy haciendo un merge Pero dónde está la magia de giflow es que gift Flow al margen de trabajar con este tipo de ramas es que se encarga de gestionar flujos más complejos
Qué Quiere decir esto que yo en el momento que tengo estas estas ramas y yo le digo venga giflow Quiero que mi rama la pases a develop pues ya se encarga de cerrar esta rama pasarla develop incluso hasta borrar la rama llegado el caso ya hace todo algo que tendríamos que hacer con muchos comandos y controlando nosotros ese flujo de memoria y sin equivocarnos el propio giflow es capaz de gestionarlo de alguna manera vamos seguir con nuevos conceptos vemos aquí otro concepto Dijimos que la rama Main es donde de verdad queda reflejados las los despliegues
a producción Cómo gestionamos un despliega producción dijimos también que la rama de velop es la encargada de tener el código que de verdad puede ser susceptible de pasar producción cuando queramos y después la rama feature es donde íbamos creando nuevos desarrollos pues tenemos otro tipo de Rama que es la rama Release Qué es la rama Release como tal la rama Release Es una rama que abrimos a partir de develop y donde allí hacemos lo necesario que puede ser un pequeñito cambio o puede ser que directamente abrimos la Release porque ya vamos a pasar la producción
qué hace este tipo de Rama especial propia de git flow la rama Release lo que va a hacer es que en el momento que la cerremos va a volcarse sobre la rama Main va a crear un tag sobre la ramame y va a cerrarse también sobre la rama de Velo y va a decir venga de velo estás al día ya Acabo de desplegar y también he reflejado en el Main Cuál es el punto que tú has querido guardar porque estabas haciendo una Release del proyecto otro tipo de Rama especial aún tenemos un par más Pero
bueno vamos a ver la última para mí más importante que es esta que vemos por aquí que es Hot fix imaginaos que por lo que sea aparece un error claro os acordáis el equipo que estaba aquí Haciendo una nueva pantalla aquí otra nueva pantalla y que estaban siguiendo su vida iban a su rollo pero claro en la versión 0.1 que estaba desplegada Ahora parece un error y claro cómo resolvemos un error quiero resolver solo el error o es lo lógico cuando aparece un error tenemos que tomar la decisión de si ese error puede esperar es
decir que podría entrar en un flujo de desarrollo en plan va es un error superremoto nos da igual Pues mira no hace falta ni corregirlo Rápido es decir se puede corregir siguiendo el propio flujo de evolución de la app OK Pero imaginaos que aparece Hot fix ya lo está diciendo aquí Este esta corrección en caliente no de alguna forma es venga acaba de petar está apretando producción no podemos esperar a que los equipos se pongan de acuerdo Y acaben estas pantallas y tardar dos semanas en arreglar este error vale Cuál es el la versión de
la aplicación que ha dado el error supongamos que es la Versión 0.1 pues la rama especial Hot fix lo que hace es abrirse a partir de la rama Main no abre ni sobre de velo porque de velo puede no tener un código que no es lo que nosotros tenemos en producción donde tenemos el código Sí o sí de producción Pues en cada uno de los puntos que hemos sido tagueando en la rama Main ha habido un la rama 01 Muy bien pues me voy a la ramain me voy al tag 01 Y desde ahí me
creo una rama Hot fix porque así voy a estar Corrigiendo el error justamente en la versión que está petando en producción que es la 01 yo lo corrijo Y qué hago qué hace especial git Flow cuando yo Cierro la rama Hot fix pues se cierra la rama Hot fix me genera un nuevo tag que yo puedo pasar a producción y lo que yo tengo en Hot fix pensar que no es tan de velo Porque ahora mismo siempre hablábamos de que todo estaba en develop porque yo hacía un ficher y las fichas develop a Medida que
yo las iba cerrando pero este ha sido un error en caliente Imagínate que yo corrijo el error en caliente Cierro la rama y solo se cierra contra Main qué pasaría que develo va a seguir haciendo su flujo de trabajo va a seguir apareciendo cómics se van a seguir cerrando fichas y cuando yo quiero pasar a producción qué voy a tener en develop Pues voy a tener lo último pero no voy a tener el error que yo he corregido imaginaos que esto lo tenemos que hacer A mano tendríamos que gestionar ramas en paralelo ver que todo
está sincronizado que todo está bien Qué hace kidf Flow pues este Hot fix cierra contra Main crea un tag contra Main pero se encarga de que esto que tú has corregido también se lo pasa develop para que así todos los equipos que están desarrollando Pues de paso también tengan el bus corregido puede sonar así bastante loco pero de verdad como mejor se ve es practicándolo poquito a poco pero Revisarlo leerlo seguir todos estos diagramas para ir entendiendo los de alguna manera Esto es lo importante esto sobre todo es lo más importante que tenéis que hacer
ya digo que hay muchísimos flujos os he contado este porque es el más utilizado querido por algunos odiado por otros me da igual es un flujo muy habitual y ya digo que el propio kit Kraken el propio ataxian se basa en él Y tenemos dos empresas dedicadas en gran parte a git que lo Apoyan 100% así que bueno en cierto modo eso nos quiere decir que no es ninguna locura es el método utilizado por el 80% de las empresas básicamente Cómo tendríamos de alguna forma la posibilidad de utilizarlo porque aquí os empecé a explicar magia
que estas ramas se cierra sola contra esta que abre no sé qué que cerramos no sé qué pero cómo me puedo asegurar yo de estar trabajando con gitflow claro yo podría utilizar git Flow a nivel teórico que yo quiero crear Una feature pues me creo una rama dentro de feature pero me tendría que acordar todo eso pero para ello tenemos hasta un plugin que podemos utilizar en conjunto con git para poder trabajar con git Flow [Música] tengo por aquí la terminal me voy a traer el proyecto el proyecto este de pruebas que era el example
este de barras vale lo teníamos todo bien este es el proyecto con el que estuvimos haciendo aquí cambios y modificando Diferentes cosas imaginaos que ahora decimos vale Yo tengo este proyecto este proyecto recordar que tenía una rama Main y ya está que tampoco le hiciéramos mucha fantasía que en su momento creamos diferentes ramas pero las íbamos eliminando y borrando y nos inventáramos nosotros el flujo pero ahora digo Ok quiero hacer las cosas ya mucho más medidas vamos a trabajar con giflow quiero que el flujo que siga mi equipo de trabajo o yo mismo esté basado
en Flow pues mirar lo primero que yo os diría es que instaléis lo siguiente desde homebreu por ejemplo lo podéis utilizar si queréis buscáis git Flow y aquí veréis las infinitas maneras que tenéis de instalarlo Pero bueno desde homebrup si por lo menos estáis en una en una terminal lo podéis lo podéis instalar vale Cuál es la forma brutal y aquí simplemente git low esto simplemente es una utilidad para que podamos utilizar git Flow desde la Consola Bueno aquí se actualiza me dice Hey ya lo tienes Bueno yo ya lo tenía por eso me está
diciendo que no pasa nada Ya estamos en un proyecto este proyecto no tiene git Flow no voy a escribir kit Flow porque igual quiero hacer algo dice Ah vale tienes que utilizar algún subcomando fijaos Cuáles son los subcomandos Support y versión lo vimos porque se utiliza algo menos este tipo de Rama Vale entonces no estamos quedando ya Digo como curso de fundamentos nos estamos quedando con lo básico yo si ahora quisiera abrir una feature o cualquier cosa no podría porque en realidad este proyecto mi repositorio aún no está trabajando con git Flow Cómo podría empezar
a trabajar con mi Flow escribo git Flow y aquí me salta un wizard Cuál es el nombre de la rama principal recordar que tenemos que seguir una serie de normas teníamos por un lado la rama principal Cuál va a ser La rama principal esa ya para pasar a producción versionar no sé qué es la rama Main sí me vale Cómo se va a llamar la rama de desarrollo le quieres llamar develop o le quieres dar otro nombre porque tú le podrías dar tus nombres yo digo no no no quiero que sea de velo y después
Cuáles quieres que sean los prefijos para la rama de feacher de actualizaciones y de Release yo esto lo dejo por defecto es muy raro que cambiemos esto porque tampoco nos va a Aportar mucho párrafo fix o fix para Support Support y quieres que el tag tenga algún prefijo de momento no le quiero nada vale hecho esto nuestro proyecto ya estaría trabajando con giflow y veis lo que me hace Jack Flow que es muy listo en donde se me ha colocado ya estoy en la rama de velo recordar que la rama Main yo no debería nunca
estar situado sobre la rama Main porque la rama Main es donde se van guardando las cosas en el momento que yo Despliego pero yo todo el desarrollo lo hago sobre develo Vamos a ponernos en el punto de que yo ahora mismo quiero evolucionar mi proyecto Entonces si quiero evolucionar mi proyecto qué decíamos que teníamos que hacer Pues el tipo de Rama especial para crear nuevas evoluciones porque yo digo vale hay que meter esta nueva esta nueva cualidad dentro de la aplicación cómo lo hacíamos lo hacíamos con una fichard Cómo podré hacer para iniciar una ficha
Pues voy a Escribir git Flow qué hago iniciar este proceso este tipo de Rama especial pues este tipo de Rama especial dejarme que coloque esto por aquí era un tipo Fisher no entonces pongo git Flow lo comienzo Start picture creature Cuál es el nombre de la rama que yo le quiero dar pues lo que sea que quiero implementar o no lo sé una autenticación dos pasos o lo que sea imaginaos pues le llamo a esta rama como yo quiera pongo por aquí porque le voy a llamar así a lo lanzo por aquí y Vemos lo
siguiente dice Hey qué has puesto aquí lo tienes bien porque igual no lo estás haciendo bien todo esto que quieres iniciar entonces aquí es donde ya no se empieza a decir cositas que podíamos ir cambiando nos dice vale git Flow Dice cuáles son los un comandos nos dice feature así que yo voy a poner git Flow feature recordaos y ahora que quiero hacer con esta feature para que veáis el orden como importa Yo quiero empezarlo pero primero tengo que Indicarle Qué tipo de Rama especial Quiero crear y es no hago estar de la ficha esto
acordaros primero decimos tipo de Rama feature y ahora sí que le digo Start Y cómo le llamaba tu audio por aquí muy bien hice ahora se ha creado una rama y ya me sitúa directamente fijaos que me lo va haciendo todo automáticamente Entonces yo ahora ya estoy en esta rama voy a venirme al proyecto abrimos aquí el proyecto muy bien estoy aquí y Dijimos que queríamos crear algo pues me voy a crear aquí un fichero out punto Pipe y le meto un print a este fichero y aquí le hago te digo Aquí Esto va a
ser la autenticación Bueno pues me da igual Es decir No importa absolutamente lo que yo estoy haciendo aquí ya hemos acabado esta ficha vamos a ver cosas y de estatus qué tenemos por aquí ha cambiado este fichero muy bien vamos a irnos a las herramientas gráficas a ver qué pasa fijaos lo que tenemos por aquí la Herramienta gráfica me dice Has añadido este fichero para que veáis cómo tiene absoluta relación yo ahora vengo por aquí y digo Guitar el nuevo fichero fijaos lo que ha pasado herramienta gráfica ya me lo ha pasado el stage se
va sincronizando todo automáticamente el flujo es Exactamente igual acabo esto y ahora estoy combinando los dos hice la desde un lado y ahora le voy a hacer el cómic aquí y voy a decir auth y ya tengo el cómic fijaos Dónde está el cómic Donde me lo marca en una rama que es feature auth ya me está indicando la rama también aquí y aquí ya no tendría nada más cambiado Y qué me está diciendo hasta el propio kit Kraken ya tenemos activo gitflow Entonces me dice las ramas que tenemos por aquí Flow la rama Main
la rama de velop y la rama feacher vemos que ahora tenemos una carpeta que es feature donde van a ir añadiéndose dentro de un directorio Todas las nuevas fichas de la app Entonces ya vamos a tener de alguna forma agrupado cada persona que quiere Añadir un nuevo fichón va a estar dentro de feature todo lo que cuelgue de fichas sabemos que es una nueva actualización o una mejora de la app que se está desarrollando Ya tengo todo esto qué dijimos que sería lo siguiente que ahora yo puedo indicar ya está el desarrollo hecho cuando tenemos
el desarrollo hecho probado testado antes que hacíamos Pues De alguna forma teníamos que hacer un merge cerrarlo borrar la rama no sé cuántos qué haríamos en este caso podemos hacer lo siguiente venir por aquí e igual que abrimos y ahora digo no Ahora quiero cerrarlo ahora mi flujo ya no va a ser el de apertura ya no va a ser Start ya va a ser Finish Y si yo lanzo esto se va a desencadenar automáticamente todo el flujo que tiene prediseñado el propio git Flow que es cerrar mi rama y volcarla sobre develop Qué es
lo que hace las ficha que yo lo quiero hacer aquí vale Yo podría seguir también el propio flujo de giflow aquí eso también tenerlo en cuenta que igual que tenemos aquí absolutamente todo esto vemos un Finish feature ya nos está diciendo Cuál es el flujo que podríamos establecer lo abrí desde consola lo voy a cerrar desde aquí hice vale quieres hacer Finish feature Sí y me dice y quieres borrar también la rama porque total si has acabado tu desarrollo y lo Vas a pasar a develop tiene todo el sentido del mundo que también borras la
rama porque ya vas a tener todos tus cambios metidos en develo y esto está testeado está perfecto digo Vale pues Marco que lo quiero borrar hago Finish Y qué me hace merch de la feature a mi debell vamos a la terminal dejadme que borre todo esto hago un Start simplemente para que me lo quite Y dónde me ha cambiado ya automáticamente a develop es decir ya no existe y ahora sí Me voy al código vemos que ya no hay cambios y que auth ya está aquí totalmente emergeado en la rama de velop veis lo fácil
que es todo esto así de simple sería e igual que hemos explicado Esto es lo mismo que pasaría con los hot fix es lo mismo que pasaría con los rineses yo ahora me quiero poner en estado de Release y digo Pues venga it Flow Release porque ahora lo que tengo aquí en develo como puede ir a producción cuando nos dé la gana y digo Release Y qué quiero hacer con la Release empezarla y cuál es el nombre de la versión con la que yo voy a realizar esto pues va a ser la versión 1.0 arranco
Release nos dice aquí un poquito todo lo que ha hecho lo vemos en la herramienta fijaos ahora lo que tenemos que tener por aquí tenemos ahora la carpeta de feature ya no la tenemos se ha eliminado porque nos hemos cargado esa rama ahora tenemos una carpeta que Release por aquí y ahí va a Ser una Release 1.0 Pero esto sigue estando en una rama de Release porque puede siempre puede que tengamos que hacer pequeñas cosas en list que haya que o mandamos la Release y la mandamos a testear por última vez a validar lo que
sea teniendo ya todo eso lo siguiente será esto se valida toda la rama de lis está OK estamos listos para irnos a producción pues Exactamente lo mismo antes que hicimos con feature ahora donde yo hacía estar pues ya hago Finish hago Finish me salta que puedo crear un comentario lo que sea bueno lo que nosotros quisiéramos lo podríamos hacer Bueno me dice que puedo Añadir un comentario lo quiero quitar vale Y también quiero que lo veamos aquí Qué pasaría en este caso vamos por aquí rama de Release qué hacemos con la rama de Release Aquí
está vamos a la rama de por aquí esperar vengo por aquí Tenemos aquí la propia autenticación que viéramos antes Vámonos Al fichero listo nos dice que este fichero pues le hemos hecho aquí algún cambio en el caso de que le hiciéramos algún cambio podríamos estar revisando todo esto fijaos nos dice Hey Tú tienes cosas en la rama Main que no tienes al día dice de alguna forma tú tienes que acabar publicando todo esto porque la rama donde tú quieres cerrar todo esto y en la rama mail donde tú quieres cerrar todo esto Pues de alguna
manera tú tienes que comentarlo fijaos lo que pasa Aquí no podemos hacer este este cierre de Rama porque yo en este momento fijaos tampoco puedo porque teníamos el problema de autenticación es decir nos está cerrando el flujo en el momento que Nosotros tampoco tenemos los permisos suficientes y es algo que nosotros también vamos viendo por aquí en la herramienta Racing como nosotros vamos haciendo cosas y podemos decirle venga vamos a abortar no vamos a seguir porque en realidad hemos detectado cualquier Error que queremos modificar o lo que tengamos en mente vamos a ver lo siguiente
este Release y este Main veis Dónde está el Main el Mega lo tenemos atrás tenemos la parte de actualización y tenemos la parte de erlis el flujo como ha ido cambiando y la main nos ha ido modificando en el momento que llegáramos esto aquí cómo estábamos antes podemos elegir de repente esto y decirle vamos a finalizar ahora la rama de Release desde aquí y nos dice hasta Crear un tag el tag va a ser la versión 1.0 lo vamos a hacer ahora desde aquí y también le podemos indicar que podemos borrar la rama de Release
lo lanzo y ahora aquí esto se finaliza dónde estamos rama Main Vámonos aquí y ya estamos con la rama Main sin ningún problema Qué tiene la rama Main ahora ahora la rama Main volvemos otra vez al código sigue teniendo la voz Es decir en la ramame ahora ya tenemos nuestros cambios desarrollados en la rama feature Que han pasado a la rama de velop y que en último caso se han desplegado a través de una rama Release y que ya están también en la ramain que encontrábamos un error que lo que fuera podríamos abrir un hot
fix y desde aquí podríamos hacer todo el flujo de corrección de errores y después cerrarlo desde la rama Main otra vez y desde la rama de velve mirar los tags teníamos un tag que creamos a mano pero ahora dentro del propio flujo de giflow también ha Creado el tag 1.0 que lo vemos aquí tag 1.0 creado en la main que es justo lo que hemos desplegado y todo esto nos lo hace automáticamente o la parte gráfica o si queremos desde la propia consola Y esto es gracias a giflow pensar que todo esto lo que está
haciendo por detrás es un merge es un delete si quisiéramos un rebase vale un montón de cosas distintas la está haciendo todas en bloque y asegurándonos de que no metamos la pata porque si queremos hacer una Nueva feature lo tenemos que hacer en barra Release Si queremos corregir un bar en barra backfix Si queremos desplegar lo va a hacer en Perdón dije barra Release era barra feature y si no el desplegar en barras y en el momento que nosotros hacemos inicio o fin de este tipo de ramas especiales Se va a encargar el propio giflow
de llevar estas ramas Y mergearlas a dónde hace falta a Main a develo la borran o la borra lo que sea vale Y eso es todo el Propio flujo que está marcando el estándar de giflow ya hemos visto el flujo de giflow que yo creo que también es muy importante si queréis Leer sobre otros tipos de flujo porque nunca se sabe el que mejor se puede adaptar o si igual no lo utilizabais en vuestro equipo pues ya digo hay mucha documentación sobre diferentes formas de trabajar porque gift Flow veis que está muy bien o creo
que está muy bien pero es un flujo lento No pues lo que se Suele hablar como punto negativo que claro tengo que empezar a abrir ramas y como que en realidad hay como mucha burocracia por el medio hasta desplegar y hay otros flujos que pueden ser más rápidos Bueno ya digo ahí ya se trata un poco de cómo lo queráis de cómo lo queráis usar vale visto esto la parte de giflow y la parte de flujos cómo se suele hacer esto Cómo suele trabajar también con gitflow pensar que muchas veces tenemos el repositorio Local que
es lo que estamos haciendo nosotros ahora pero se suba repositorio remoto a github por ejemplo y ahora aquí lo que se suele hacer es como una doble combinación una doble combinación de todo el flujo de giflow que hemos visto pero cómo es la forma en la que como por ejemplo cuando estamos en una feature y hay un equipo de cinco personas también hasta podríamos llegar al punto de aceptar Que se va aceptando dentro de cada ficho imagínate estamos aquí desarrollando una nueva pantalla en una rama ficha pero aquí trabajamos cinco personas entonces Imagínate la persona
a está desarrollando esta parte la ave otra parte otra parte otra parte pero claro tenemos una rama común en la que trabajamos todos que pasa cada uno con su copial local pero tenemos que llegar algún momento a hacer Push a la rama claro todo este flujo si veis lo que Intentaba asegurar es no liarla en ramas importantes pero claro la rama la que desarrollamos también es importante porque si yo ahora hago algo terriblemente mal o deshago el código de un compañero mío o yo que sé igual eso también había que revisarlo vale aquí ya hay
gente hasta que dentro de la rama feature hace más ramas trabajando aparte Pero bueno pensando que estamos trabajando el local lo que se suele aquí hacer es que como la forma de Sincronizarnos que tenemos es a través de un servidor remoto es a través de github recordáis la filosofía de github con las puques pues por ejemplo podríamos estar en una rama fixture y dentro de esa rama ficher trabajando tres personas y que para poder aceptar dentro de la rama feature lo que yo he cambiado el local para poder aceptarlo en la rama fichón de github
la general la con la que contra la que nos vamos a sincronizar Podríamos lanzar una pool request a esa rama y que tuviera que ser nuestro propio equipo el que acepta si de verdad Esa puri rico espasa a esas ramas o incluso después ya cuando seguimos bajando Todo esto ahora cerramos esas en nuestra rama Fiction y nuestra rama feacher también la queremos pasar a develop pues podríamos lanzar una poolques desde la rama ficher hasta la rama de velop para que también ya no solo nuestro Equipo sino que otros equipos validen si lo que nosotros hemos
hecho como feature tiene sentido añadirlo según está a la rama de velop que es la rama que ya valdría para desplegar entonces podemos hacer ese mix Cómo podemos combinar todo el flujo de githga con toda la parte por otro lado del propio git o del propio git Flow que estábamos ahora hablando o del flujo de git que decidáis utilizar y así ya está el flujo completísimo de trabajo [Música] Ahora quiero ver los los innombrables no los dos de los comandos de git que yo creo que más gente le tiene le tiene miedo de alguna forma
son estos dos comandos no me voy a meter a fondísimo con ellos porque primero porque son ya comandos un poquito avanzados y segundo porque se utiliza muy muy muy poco vale es por un lado el Cherry Pick y es por un lado por otro Lado el revés dos conceptos vale comandos asociados a Cherry Pick git Cherry Pick comandos asociados a rebeis git revise que los podemos utilizar con las herramientas gráficas ya lo visteis con botón derecho nos va a aparecer entre las opciones las partes también del Cherry Pick y del revés Así que lo podemos
utilizar tanto desde terminal como desde herramientas gráficas vale Qué significan estos conceptos de Cherry Pick y de ribéis voy a intentar explicarlo primero a nivel teórico a ver qué pasaría imaginaos que empezamos a desarrollar algo muy concreto algo muy concreto en una rama que yo que sé vale y ese desarrollo no acaba llegando a buen Puerto por lo que sea porque igual no seguimos evolucionando esa feacher y o se ha cancelado o no tiene mucho Sentido que lo hagamos así pero y dejamos esa rama ahí de lado seguimos evolucionando nuestro proyecto pero claro dentro de
esa ficha imagínate había que implementar un login no al final no hace falta el login dejamos la rama por ahí perdida pero cuando yo estaba desarrollando ese login sí que me creé un componente muy bonito para la capa visual que era la introducción del password y de repente recordamos esto entre Muchos otros ejemplos Es simplemente para entender ese concepto de Cherry Pig recordamos Ah qué bien me vendría ese componente que yo desarrollé para mostrar el password pero yo no quiero la feacher de la password quiero solo ese cómic que yo hice con el componente muy
concreto vale pues aquí es donde entra el Cherry Pick Qué es el Cherry Pick la posibilidad de irnos a un cómic concreto y ese cómic concreto traerlo a la rama Que nosotros querramos vale Y de esa manera yo simplemente haciendo este Comando lo vamos a ver muy rápido en consola lo vamos a ver ya te digo más a nivel teórico porque simplemente porque creo que lo mejor es que lo tengáis presente y que sepáis que se utiliza vale o que tenéis esa posibilidad pero no es muy utilizado porque suele ser en cosas muy muy concretas
vale Cómo haríamos un Cherry Pick simplemente haríamos git Cherry Guión Pick y ahora aquí tendríamos que indicarle el identificador de alguna manera del cómic que nosotros nos queremos traer Cuál es o a dónde nos va a llevar ese cómic a la rama a la que estemos estamos en la ramain pues si yo ahora recuerdo que tengo un commit me vengo por aquí hago git log imagínate git Love online porque me pongo y digo Ah vale esto quedo aquí una rama perdida No sé qué Qué bien me venía justo lo que yo hice en este cómic
pues haría donde Está Ah claro no lo y le meto el identificador entonces justo lo que hay en este cómic me va a venir para el Main si yo tuviera conflictos me mandaría solucionar los conflictos tendría que volver a hacer el guitart volver a hacer el cómic es decir ya sería el flujo de resolución de conflictos de toda la vida e incluso También tenemos otra posibilidad para hacerlo poquito a poco también Lo tendríamos de manera interactiva de alguna forma que es que En el momento si se encuentra algún problema nosotros tendríamos que ir haciendo ese
ad y tendríamos que ir haciendo comandos como continúe para ir avanzando Y trayéndonos de forma controlada cada uno de esos cómics vale una vez lanzamos esto encontramos cualquier problema Pues igual hay que hacer una y después tenemos que ir haciendo por la parte interactiva que sería con el continuo haríamos continúe y todo esto hasta que lo tuviéramos bien Que de repente nos damos cuenta que estamos haciendo todo el proceso de Cherry Pick y nos hemos equivocado y queremos deshacer pero ya empezamos a hacer cosas son muy locas No pues simplemente con hacer Cherry Pick abort
paramos el proceso y todo vuelve al estado en el que estábamos antes de comenzar ese proceso de Cherry Pig de traernos ese cómic de manera remota este es uno de los comandos ya digo muy raros ya os lo pongo como la parte avanzada Para cerrar este curso porque no suelo utilizar mucho Otro Comando también de los raros y de los que dan miedo es el revés aquí estamos El Comando rebase que antes también se nombraba por ahí básicamente es para traernos una rama a un punto concreto y hasta casi Modificar el historial de cómics también
es un comando muy delicado porque modifica el propio historial de los cómics vale imaginaos que tenemos una rama por ahí perdida hicimos no no yo esta rama me la Quiero traer a la rama principal y la quiero colocar delante de todo porque va a ser la parte buena claro pensar que esa rama se abrió en un momento muy concreto de la historia de nuestro proyecto y que eso va a modificar todo lo que ha venido después pero nosotros lo que queremos hacer es adelantarla no es que querramos marjear la rama es que en realidad queremos
poner todo lo que hay en esa rama lo queremos colocar como la rama buena al final del propio Head De nuestra de nuestra rama donde nos la querramos llevar Vale pues cómo haríamos este revise Imagínate que yo tengo una rama por ahí la que sea que tenemos la rama que sea y que yo de alguna forma también me la quiero llevar pues la forma que tendríamos sería hacer git rebase de la rama la que yo quiero hacer ese rebase el nombre que fuera se lo podría por aquí y María urbase de esta rama contra la
rama la que estemos También tenemos el rebase interactivo Para hacerlo paso a paso para no equivocarnos con el menos Sí con eso también podríamos hacerlo Después con el igual que vamos avanzando tendríamos que ir a hacerle comer rebase ir haciendo el continúe igual que podemos ir avanzando podemos también deshacer todo hacemos un abort abort y el rebase pues no se lleva a cabo y se les hace ya digo Estos son dos comandos que os quiero dejar nombrados por el hecho de que sepáis que existen Pero bueno es algo que os Recomiendo que utilicéis solo en
los casos en los que sea estrictamente obligado y que entendáis muy bien cómo funciona Pero estos son como los dos comandos más raros o de los más raros que os podéis encontrar Cherry Pick para traeros un cómic concreto hago esta rama al final de vuestra rama y un ribéis para pasar toda una rama al final de la rama donde queráis y Modificar el propio historial de cómics esos dos tenerlos muy presentes porque nunca se sabe Cuándo nos puede hacer falta [Música] recta final del curso para ver ahora pasamos estamos con una parte de git vamos
a cerrar el curso con una parte de github que también quiero que tengáis presentes dos características que esto ya no tiene nada que ver con git como tal pero son dos características que tiene github muy importantes y que por lo menos también Tenerlas presentes igual que tengáis el Cherry Pick y arribéis ahí en la mente porque nunca sabe hasta dónde podemos tener que romper nuestro repo de git Pues que tengáis estas dos características de github que para mí son las dos más importantes fuera de lo que es el flujo de github de los de las
y todo eso que estábamos hablando vale Así que la primera característica de la que os quiero hablar de github muy importante es githukees la web de gift Os la dejo por ahí también la tendréis en la documentación del curso para que la podéis revisar Qué es githupellies es la posibilidad de que vosotros y vosotras lo que tengáis desplegado en un repositorio pueda actuar de Hosting si vosotros tenéis una página web que cumple unos requisitos para poder ser desplegado en github pages directamente se puede convertir vuestro repositorio de código directamente en el mecanismo para poder Desplegarlo
y que ya se transforme en una web gratis gratis aquí os lo cuenta ya digo muy por encima Pero básicamente es crear un repositorio de una manera concreta que va a ser con el nombre de usuario punto y una vez ya tenéis eso sería casi lo que está en ese repositorio en el momento que vosotros lo pusierais directamente se despliega y ya está tenéis que leerlo con calma obviamente esto ya digo esto se sale un poco del tema de guita y de gija pero Que sepáis que esta es una característica de github donde hemos visto
por ejemplo la comunidad que hay mucha gente que está desplegando sus propios portfolios crea su portfolio lo subas repo y ya se despliega allí entonces eso es una característica yo creo que bastante Guay esto por un lado la documentación tenéis absolutamente todo la tenéis también español ya sabéis que la documentación de github está perfecto y aquí podéis Ver cómo dar vuestros primeros pasos con babies si interesara todo esto pues ya sabéis pedirmelo intentamos hacer un tutorial o lo que sea vale Pero bueno que sepáis que todo esto lo tenéis de forma gratuita en github y
ya la última característica que quiero ver también muy importante de github es lo que se llama git Cup actions es que el código que nosotros tenemos en githga en realidad también podemos crearle automatización automatizaciones para Desplegarlo para pasar test para hacer lo que querramos ir es totalmente un Api a nuestra disposición para ir creando diferentes trabajos que nosotros le asociamos a nuestro proyecto de gija y que haga lo que tenga que hacer por ejemplo yo pusieron los cambios aquí Javi cada vez que puse o quiero que el propio github pase los test o lo que
sea se dice de más o menos infinitas automatizaciones y cuando esto funciona o cuando yo hago un Push a esta rama Quiere decir que se despliegue no sé dónde Bueno ahí la Fantasía que ya os dé la gana también muy a tener en cuenta el tema de las automatizaciones fijaos mirar viltes and publish podría hacerlo todo en diferentes entornos lo que fuera y cómo se van pasando cada uno de estos trabajos que tiene veis la vil pasa los tres pasa y después hace el publish y lo ha hecho todo seguido y hasta Tenemos aquí una
pur rico es cuando ya se han ejecutado todos estos procesos por lo Que queremos hacer aquí hay un montón de cosas un montón de integraciones vemos Amazon ashure Google Cloud infinitas cosas que podemos integrar para realizar estas automatizaciones vale Aquí sí que hay una parte que es gratuita vale 2000 minutos de trabajo de las máquinas de github que es mucho ya os digo yo aunque veáis esto fijaos que es de pago mal Me están cobrando fijaos las partes gratuitas 2000 minutos de trabajo de una máquina son muchas horas Pensar que para la gran parte de
los proyectos lo podéis hacer todo absolutamente gratis Muchísimas gracias por llegar al final del curso déjame en comentarios que te ha parecido y si quieres más contenido en el canal sobre git y te ha gustado recuerda Apoyar el repositorio de código haciendo estar en él y compartirlo con más gente que quiera aprender tampoco te olvides de suscribirte al Canal y de pasarte si quieres por los directos que hacemos de Lunes a viernes puedes encontrar cada una de mis redes en maure.t y unirte al servidor gratuito de discord que tienes a tu disposición así como practicar
todo lo aprendido semana a semana en la plataforma de retos de programación de verdad Muchísimas gracias por tu tiempo ya posees estabilidad tan especial Ahora te toca a ti seguir mejorando Espero seguir viéndote por la comunidad hasta luego [Música] [Música]