Soy un novato en git y sigo leyendo sobre una rama "maestra". ¿Es "maestro" solo un nombre convencional que la gente usa o tiene un significado especial como HEAD?
Cuando lo hago git branchen el clon que tengo, solo veo 1 rama única, en la que estoy. Ningún "maestro" en absoluto. Si escribo git checkout master(como veo en muchos tutoriales o guías), obtengo
error: pathspec 'master' did not match any file(s) known to git.
Solo estoy confundido sobre por qué mi clon no tiene un masterque todos parecen insinuar que siempre existe.

git add .,git commit -m "Test"y, a continuacióngit push -u origin master.git ls-remote origin masterno muestra nada.Para verificar una rama que no existe localmente pero que está en el repositorio remoto, puede usar este comando:
fuente
fatal: Cannot update paths and switch to branch 'master' at the same time.masteres solo el nombre de una rama, no tiene nada de mágico excepto que se crea por defecto cuando se crea un nuevo repositorio.Puede volver a agregarlo con
git checkout -b master.fuente
git checkout -b mastersolo agrega una nueva rama de la actual para mí.git checkout -b mastercreará unamasterrama a partir de lo queHEADsea, así que si estás en otra rama, creará unamasterrama a partir de ella. Excepto si ya tiene unamasterrama (lo que tendrá, a menos que, por ejemplo, la haya eliminado o nunca se haya comprometido en ella). Si ya tiene unamasterrama, este comando solo le dará un error.masteres solo una rama, que se puede eliminar congit branch -d master. Aunque git lo protegerá de eliminar la rama en la que se encuentra actualmente, no hay nada especial que proteja lamasterrama. Más específicamente que eso, es difícil decir cómo lo hizo. ¿Quizás usas elhistorycomando de tu shell para echar un vistazo?git checkout -b mastersolo funcionará cuando HEAD esté configurado como origin / master. En cualquier otro caso (por ejemplo, estás en 'desarrollar'),git checkout -b mastercreará una rama llamada 'maestro' que se basa en la posición HEAD actual (por ejemplo, de 'desarrollar'). También debe indicar qué rama será la estopa para la nueva. @Bunyk tiene la respuesta correcta en este hilo: stackoverflow.com/a/21330943/287109De hecho, tuve el mismo problema con un repositorio completamente nuevo. Incluso había intentado crear uno con
git checkout -b master, pero no crearía la rama. Luego me di cuenta de que si hacía algunos cambios y los comprometía, git creaba mi rama maestra.fuente
En mi caso, había una rama de desarrollo pero no una rama maestra . Por lo tanto, cloné el repositorio apuntando el HEAD recién creado a la rama existente. Luego creé la rama maestra que faltaba y actualicé HEAD para apuntar a la nueva rama maestra.
fuente
si se trata de un nuevo repositorio que ha clonado, es posible que aún esté vacío, en cuyo caso:
git push -u origin masterprobablemente debería solucionarlo.
(Lo hice en mi caso. No estoy seguro de que sea el mismo problema, pensé que debería publicar esto por si acaso. Podría ayudar a otros).
fuente
Me encontré con el mismo problema y descubrí el problema. Cuando inicializa un repositorio, en realidad no hay ramas. Cuando inicie la ejecución de un proyecto
git add .y luego segit commitcreará la rama maestra.Sin registrar nada, no tiene una rama maestra. En ese caso, debe seguir los pasos que otras personas aquí han sugerido.
fuente
Parece que debe haber al menos una confirmación local en la rama maestra para hacer:
Entonces, si lo hizo
git init .y luegogit remote add origin ..., aún debe hacer:fuente