Tengo un servidor privado que ejecuta git 1.7 cuando
git init
una carpeta no crea una rama maestra. Porque cuando lo hago:
git branch
No enumera nada. Cuando lo hago:
git --bare init
crea los archivos Cuando escribo
git branch master
dice:
fatal: Not a valid object name: 'master'.
git branch newbranch
Respuestas:
Esto es cierto, y el comportamiento esperado. Git no creará una
master
rama hasta que confirmes algo.Un non-bare
git init
también creará los mismos archivos, en un.git
directorio oculto en la raíz de su proyecto.Ese es de nuevo el comportamiento correcto. Hasta que te comprometas, no hay una rama maestra .
No has hecho una pregunta, pero responderé la pregunta que supuse que querías hacer. Agregue uno o más archivos a su directorio, y
git add
ellos para preparar una confirmación. Luegogit commit
para crear su commit inicial ymaster
rama.fuente
.git/HEAD
y cambierefs/heads/master
arefs/heads/main
, pero no hay ninguna razón para hacerlo. Simplemente cambie el nombre de su rama después de la primera confirmación.git checkout -b <branchname>
para cambiar HEAD; no necesita editar el archivo.Git crea una rama maestra una vez que hayas realizado tu primer commit. No hay nada para tener una rama si no hay código en el repositorio.
fuente
En primer lugar, cuando crea un "repositorio desnudo", no va a trabajar con él (no contiene una copia de trabajo, por lo que el
git branch
comando no es útil).Ahora, la razón por la que no tendría una
master
rama incluso después de hacer unagit init
es porque no hay confirmaciones: cuando cree su primera confirmación, tendrá unamaster
rama.fuente
git clone
para ahorrar tener que hacer ungit init
en el lado del receptor.git checkout
si desea que el WC refleje lo que hay en el.git
directorio (que es donde presionó).Debe comprometerse al menos una vez en master antes de crear una nueva rama.
fuente