24. Master, main y otros nombres de rama

Un episodio de Tutorial de Git

Arrancamos con un tema fresco. Hace ya un tiempo que se empezó a recomendar no usar "master" como nombre de la rama principal, por lo que hoy día Git tiene ajustes para cambiar el nombre de la rama, y también hay que estar pendiente de lo que se clona.

Transcripción

Hola a todas, hola a todos, qué tal como estáis y bienvenidos un día más a makigas, al primer capítulo de la temporada 2 del tutorial de Git. Nunca pensé que llegaría este día, y de hecho de ser por mí no hubiese llegado, pero mucha gente en los comentarios decía "quiero más, quiero más vídeos del tutorial de Git". Pues venga, aquí tenéis más contenido de esta lista de reproducción.

En esta segunda temporada, me voy a centrar en tres tipos de contenido.

En primer lugar, cosas nuevas que han aparecido en Git estos años. La primera temporada se grabó hace cinco o seis años y parece que no pero ha pasado mucho tiempo. Todos hemos cambiado, incluido Git. No es que hayan metido muchas cosas nuevas, pero con el paso del tiempo el equipo de desarrollo se ha dado cuenta que Git, aunque intenta ser intuitivo, muchas veces falla. Falla en su propósito. Hay veces que escribir git y lo que sea no es del todo intuitivo en algunos casos. ¿Qué va a pasar si le doy al Enter? No lo sé, porque no me dice si está bien, si está mal, si se ha hecho bien, si he perdido todos mis archivos. Digamos que una de las cosas que han estado haciendo estos años en Git sobre todo es facilitar el día a día haciendo que algunas cosas que antes eran más complicadas ahora sean un poquito más accesibles. En esta temporada voy a hablar acerca de nuevos comandos que han aparecido en Git que están pensados para facilitar el día a día. Por ejemplo, sabéis que checkout ahora, por si no lo supiéseis, lo que antes se hacía con checkout, que valía para todo, ahora son múltiples comandos para que sea un poquito más obvio.

También en esta temporada voy a hablar de cosas de las que no hablé adrede en la temporada 1 porque no eran muy importantes para el día a día cuando trabajas con Git y cuando estás aprendiendo pero que a lo mejor puede ser interesante conocer, porque amplían un poquito. Para toda esa gente curiosa que quiere saber más sobre Git, aquí tiene un poquito más.

Y luego cosas de las que sí hablé, pero que me habéis dicho en los comentarios que podría profundizar mejor o que no está del todo bien contado, pues una actualización. Aunque en YouTube tú no puedes simplemente editar un vídeo viejo, entonces tienes que crear uno nuevo. Aquí está la actualización de esos vídeos.

En este primer capítulo voy a hablar de un concepto que lo quiero contar ya, en parte porque es importante porque la salida de mis comandos seguramente sea diferente a la de los vuestros en vuestro ordenador, si no lo cuento ahora, y no quiero comentarios del estilo "ay, pero es que esto no se ve igual que en tu vídeo". Normal.

Me refiero a un tema que se metió en Git como hace un año, hace un medio, no recuerdo cuánto. Cuando veáis este vídeo seguramente sea más. Es lo del nombre de la rama principal que se crea cuando creas un repo en Git.

Para quien no se haya enterado, en Git hace un tiempo hicieron un cambio que es que cuando creas un repo, por ejemplo, cuando creo una carpeta como la carpeta Prueba y dentro hago git init... históricamente hablando al hacer git init se creaba el mismo repositorio en todas partes. El comando era igual y generaba lo mismo en mi ordenador, en el tuyo, en el de cualquier desarrollador del planeta. Se creaba una repo en blanco como una rama llamada master donde podías incluir tu código.

Eso no está muy claro en este momento y es un área un poco gris, es posible que en el futuro cambie, de modo que también grabo este vídeo para hacerlo future-proof, es decir, seguro a futuro.

En Git desde hace un tiempo no se recomienda usar master como nombre principal de rama. Digo "no se recomienda" en el sentido de que cuando tú le das a git init, si no lo tienes configurado, te saldrá un mensaje de aviso diciendo "oye, vamos a utilizar master como nombre de la rama inicial, pero es posible que esto cambie en el futuro". En el momento de grabar este vídeo de momento la rama se me crea como master, pero puede que algún día esto cambie.

Te ofrece una pista sobre cómo puedes cambiar el nombre de la rama y te da algunas sugerencias. Hoy en día es posible que cuando clones un repositorio de internet, por ejemplo software libre o si te conectas con el repositorio en tu lugar de trabajo, quizá la rama no se llame master, sino que tenga otro nombre, como main, trunk o development.

Yo, por ejemplo, soy muy partidario de usar trunk en todos mis repositorios. De hecho aquí este comando sirve para cambiar el nombre de la rama principal, pero bueno, que esto es una cosa que va al gusto. Lo normal hoy en día y cada vez más es que en repos de software libre que os encontréis en internet la rama principal se llame main.

Sobre todo, ¿esto por qué lo estoy contando? No quiero contar la turra política que hay detrás de todo esto, en parte porque hay palabras que no debería decir en YouTube si no quiero que el algoritmo me persiga... porque el algoritmo de YouTube hay ciertas palabras que no le gustan pero bueno, digamos que master tiene una serie de implicaciones históricas, que no tienen que ver con Git, sino con su antecesor. Git es una herramienta que se creó en 2005 o 2006 por Linus Torvalds, basándose en los principios de otra herramienta llamada BitKeeper. Aquí tenéis su manual de instrucciones. Si le echo un vistazo al resto del manual se parece bastante a Git. Hay ciertos conceptos que en Git están basados en este, y uno de esos conceptos es la noción del master repo y de repos que no son el master repo. Tienen otros nombres que desde el punto de vista sajón son un poco más susceptibles. No quiero decir la palabra porque entonces YouTube me va a funar el vídeo y no quiero que eso ocurra. Muy sensible esta herramienta.

Entonces un poco para desligarse de ese pasado y de lo que representan esas palabras, han decidido sobre todo las plataformas web como GitHub o GitLab, que son quienes más han apostado por todo esto, introducir uns nombres alternativos para cuando creas un repo. Por ejemplo, si miramos el código fuente de algunos repositorios como Python, el nombre de su rama principal ahora es main. En el caso de proyectos como Linux, como concepto parece que la rama sigue siendo master, pero quién sabe si esto durará muchos más años.

Yo, como digo, por mi parte, cuando vosotros veáis estos vídeos de la temporada 2 veréis que la rama principal siempre se llama trunk, porque es el nombre que yo le suelo dar a mi código en el que trabajo.

Aquí tenéis una pista para cambiar el código en futuros repos que abráis, si ejecutáis git config --global init.defaultBranch, que gracias por ponerlo porque a ver quién es el guapo que se acuerda de esto, puedes poner el nombre que quieras que tenga en el futuro tus ramas principales en tus repos.

Si ahora creo una nueva prueba y hago otro git init, el nombre de la rama será trunk. Lo podemos cambiar lógicamente, si ya es demasiado tarde, usando git branch -m, que es el comando para cambiar el nombre de una rama. Pero si lo queréis hacer para acordaros siempre, podéis aclarárselo con este comando que os he puesto: git init init.defaultBranch.

Yo esto también lo cuento porque a lo mejor hay gente que pone nombres de ramas diferentes a las que usa la interfaz web de GitHub y GitLab. GitHub, GitLab, te dejan crear desde su página web repositorios. Le das al botón Nuevo, metes sus datos y te crea un repositorio. Y hay veces que te puede crear ya directamente un commit con un README, un archivo de licencia... Y claro, en ese momento GitHub y GitLab aprovechan para ponerle el nombre de la rama, que suele ser main.

Entonces si tú en tu ordenador estás llamando la rama principal de otro modo, como por ejemplo master o trunk, lo más probable que ocurra es que cuando hagas el git remote add para traerte ese remoto que tienes en GitLab, o que tienes en GitHub, a tu ordenador, segúramente las cosas no cuadren al principio porque dirá "oye, no puedo porque mi rama se llama master, pero la rama en GitHub se llama main, y no te saldrá y tal". Tienes que estar pendiente de estas cosas para saber cómo resolver este asunto. No es que haya un problema, es solo que tienes dos ramas porque se llaman de forma distinta.

En las opciones de GitHub puedes cambiar el nombre de la rama por defecto o puedes cambiar la rama principal o todo eso. Fundamentalmente, esto lo cuento por ese asunto, más que nada.

Entonces, lo dicho. Este vídeo lo grabo a ciegas porque lo grabo para el futuro, por si en el futuro las cosas cambian definitivamente, pero por el momento que sepáis que así a corto plazo, a medio plazo, podéis cambiar el nombre de la rama con este comando y que seguramente no coincida el nombre de la mía con el resto porque yo elijo trunk, que es un homenaje a SVN: otro sistema de control de versiones también bastante antiguo y previo a Git, que llamaba así a su rama principal.

Nos vemos en próximos vídeos, un saludo y hasta luego.

Fecha de emisión: • Duración: 8:57

Lista de reproducción

Este tema