rama git -M principal

5 minutos de lectura

Una de las cosas que github ahora recomienda es cambiar la rama a principal en lugar de maestra.

El código dado en el sitio de github es:

git branch -M main

Eso nunca funciona para mí, así que pensé en mencionarlo aquí. Me cuesta creer que este problema solo ocurra conmigo.

error: refname refs/heads/master not found
fatal: Branch rename failed

Usted menciona en su propia respuesta que git branch -m main (o lo mismo con -M) solo funciona una vez que tiene un compromiso inicial.

Alternativamente, antes de crear cualquier compromiso, use git checkout -b main para cambiar el nombre de la rama por nacer a main.

No existe una diferencia funcional entre crear la confirmación inicial, luego cambiar el nombre de la rama, frente a cambiar el nombre de la rama no nacida y luego realizar la confirmación inicial. Las confirmaciones no recuerdan qué rama era la rama actual cuando se realizaron,1 por lo que puede cambiar los nombres de las sucursales en cualquier momento. (Otro gente recuerdan los nombres de las sucursales, en sus cerebros, y pueden haber guardado algunos nombres de sucursales en clones, por lo que es mejor hacer todos estos cambios de nombre antes de que alguien más se apodere de estos nombres. Pero eso está fuera de tu propio Git).


1los git merge Sin embargo, el comando genera un mensaje de combinación predeterminado:

merge branch X [into Y]

y git pull genera un mensaje de combinación predeterminado:

merge branch X of 'url' [into Y]

donde X es el argumento que le diste a git merge—con una URL agregada al usar git pull correr git merge—y Y está presente, y es el nombre de la rama actual, si la rama actual no es la rama “especial” designada. Esto fue codificado como master en el pasado, pero se está volviendo configurable. El resultado final de todo esto es que tiendes a recibir mensajes del tipo merge branch feature al fusionar características en master/mainy mensajes de la forma merge branch feature into develop al fusionar entidades en otras ramas.

Tenga en cuenta que estos mensajes generados automáticamente transmiten relativamente poca información útilespecialmente si elimina el feature rama después de fusionarlo. Para tomar un ejemplo particular, suponga que reserva el nombre hotfix para una rama temporal en la que se realizan revisiones. Luego, su repositorio tendrá la confirmación ocasional de “revisión de rama de combinación”, pero cada uno de estos mensajes es para un diferente revisión La información que se transmite aquí es casi inútil: necesita la fecha de la fusión, no solo el mensaje, para encontrar el “error candente” correcto. En el peor de los casos, puede ser peor que inútil, ya que podría enviarlo a buscar el “error caliente” equivocado. Si reemplaza manualmente esto con “arreglo de combinación para el error crítico del cliente # 1234”, obtendrá un mensaje útil.

(Si los nombres de sus sucursales incluyen el número de referencia del error, después estos mensajes son útiles. La parte “hacia la rama Y”, que utiliza el Actual Sin embargo, todavía me parece bastante marginal).

  • esta es una gran explicación, pero cuando estaba haciendo eso como decía siguiendo los pasos, no reconoce la palabra rama

    – papi cardona

    2 oct 2021 a las 20:42

  • @daddycardona: Me temo que tendré que ver una copia y pegado de su sesión de línea de comandos de Git para saber a qué se refiere aquí.

    – torek

    2 oct 2021 a las 21:30

  • @torek Lo descubrí. Escribí algunos pequeños errores estúpidos y descubrí cómo hacerlo y crear las claves para cometerlo y todo, pero gracias por responder 🙂

    – papi cardona

    10 oct 2021 a las 23:20

Tiene que haber al menos un compromiso para que esto funcione.

git status
On branch master

No commits yet


Haz el primer compromiso.

git add *.html
git commit -m 'first'
[master (root-commit) 455481e] first
 1 file changed, 54 insertions(+)
 create mode 100644 start.html
git branch -m master main
git status
On branch main

Tenga en cuenta una explicación más completa en ¿Cómo cambio el nombre de una rama local de Git?

  • ¿También podría comprometerse y vaciar el compromiso como inicial? git commit —allow-empty -m ‘initial’

    – evoluciónxbox

    17 de marzo de 2021 a las 16:14

avatar de usuario
el rey2

Es importante señalar que la única razón por la que git crea una rama inicial llamada Maestro se debe a la configuración init.defaultbranch establecido durante la instalación de git-scm. Si se deja por defecto Deja que Git decida será Maestro. Si selecciona la opción Anular el valor predeterminado… y había especificado algo más, por ejemplo, el ajuste preestablecido principal, este será el valor predeterminado de todo el sistema. Seleccione esto y puede omitir el paso para nombrar la rama inicial durante la inicialización del repositorio.

Compruebe la configuración del sistema

Puede verificar el valor de la configuración del sistema con:

git config --system init.defaultbranch

…devolviendo el valor establecido en todo el sistema.

Anular la configuración del sistema

Puede anular una configuración en un nivel de usuario global con:

git config --global --add init.defaultbranch mistress

o, a nivel de proyecto con:

git config --add init.defaultbranch mastress

Alternativamente, puede ir y cambiar manualmente el gitconfig archivo que, en Windows, se almacena con el programa en el etc carpeta. Localice la línea init.defaultbranch y edítela según corresponda.

GitHub usa “principal” como el nombre de su principal rama. Solía ​​usar “maestro”, pero git todavía por defecto es “maestro”. Quiere asegurarse de que ambos git y GitHub están usando lo mismo rama nombre, así que usa “principal”. La mejor manera de lograr esto es cambiar su configuración predeterminada. rama nombre a “principal”:

$ git config --global init.defaultBranch main

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad