Crea un repository de Git vacío con el nombre de la twig como prod

Me gustaría crear un nuevo repository git init usando el command git init con nombre de twig como prod . Busqué todas las opciones compatibles con el command git init en esta documentation para anular el maestro de nombre de twig pnetworkingeterminado.

Desafortunadamente, no hay tal opción.

¿Personalizar el código fuente de git es la única opción?

Si se trata de un nuevo repository git, puedes hacer

 git checkout -b prod 

Y se parará en una nueva twig llamada "prod".

O bien, simplemente cambie el nombre de la twig principal si ya le ha asignado algo:

 git branch -m master prod 

Este código puede hacer un nuevo repository con una twig llamada "prod"

 mkdir repo cd repo git init && git checkout -b prod 

Para cambiar la twig pnetworkingeterminada que los usuarios han desprotegido cuando se clonan, debe crear un puntero HEAD en el repository remoto . La reference se vería así en su repository local ejecutando:

 git branch -avv 
 remotes/origin/HEAD -> origin/master 

Por defecto, esto es master , pero puede cambiar la twig pnetworkingeterminada en Github . Otros services de alojamiento tienen methods similares discutidos en esta pregunta . Si está alojado por su count o tiene acceso de shell / sistema de files al server remoto, puede configurarlo manualmente con:

 git symbolic-ref HEAD refs/heads/prod 

Después de get el control remoto, debería ver esto actualizado:

 remotes/origin/HEAD -> origin/prod 

Ahora, cuando los usuarios clonan su repository, automáticamente se desprotegerá la twig de prod .


Sin embargo, su pregunta específica con respecto a init me ha llevado a descubrir una rareza interesante con Github: incluso si el repository solo tiene una twig llamada prod , no crea automáticamente el puntero HEAD .

Creemos un repository vacío, establezcamos el nombre de la twig y luego confirmemos:

 git init git checkout -b prod touch file1 git add . git commit -m 'init repo' 

Crea el repository remoto:

 curl --data '{"name":"myproject"}' -u YOUR_GITHUB_USERNAME https://api.github.com/user/repos 

Agregue el control remoto y presione:

 git remote add origin https://github.com/YOUR_GITHUB_USERNAME/myproject.git git push -u origin prod 

Para probar esto, vamos a entrar en una nueva carpeta y clonar el proyecto para ver cómo se verá para los demás.

 git clone https://github.com/YOUR_GITHUB_USERNAME/myproject.git 
 Cloning into 'myproject'... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 3 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done. Checking connectivity... done. warning: remote HEAD refers to nonexistent ref, unable to checkout. 

Especialmente tenga en count que la última línea:

 warning: remote HEAD refers to nonexistent ref, unable to checkout. 

Por alguna razón, Github no creó ese puntero HEAD para nosotros, por lo que git, por defecto, recurrirá a la twig master , que no existe en nuestro repository. Por lo tanto, cuando cd en la nueva carpeta, notará que realmente ha revisado una twig vacía llamada master sin commits, pero la twig prod está ahí si solo la mira. Esto es muy molesto, por lo que parece que todavía tendremos que actualizar manualmente la twig pnetworkingeterminada en Github.

Aquí es donde se pone raro. Github ya muestra esa twig como pnetworkingeterminada, por lo que no podemos actualizarla .

enter image description here

La única forma en que descubrí cómo solucionar esto fue crear otra twig temporal, cambiarla a la twig pnetworkingeterminada y luego volver a cambiarla.

Ahora, cuando alguien lo clone, entonces tendrán la twig de prod automáticamente comprobada.