Clon de Git: crea un clon desnudo pero con twigs de rastreo remotas (para un repository 'principal' de tree de trabajo)

Para utilizar con worktrees, bash hacer un clon desnudo, pero donde las twigs remotas se asignan a las twigs de seguimiento remoto.

Estoy tratando de configurar un flujo de trabajo de tree genérico. Mi repository es realmente muy grande, por lo que la clonación es costosa. E incluso usando enlaces duros, como los repos se obtienen, tienden a divergir con el time y ocupan espacio extra, y una búsqueda en un repository no ayuda a otro, así que trabajar en los treees de trabajo parece ser lo más obvio. (Tendrás que confiar en mí en esto).

Los treees de trabajo requieren un repository "principal" que realmente contenga los objects. Obviamente, ese clon no debe eliminarse, por lo que me gustaría ponerlo en algún lugar como /var/cache/git/reponame.wt.git . (Estoy haciendo una solución genérica para mí y mis colegas, así que tengo que hacerlo bastante infalible).

Podría convertirlo en un clon normal, pero luego tiene que sacarse una twig y luego esa twig no puede ser extraída por ningún otro tree de trabajo, así que tendría que hacer una twig ficticia (por ejemplo, wt_dummy ) que podría confundir a la gente. Lo que realmente prefiero hacer es hacer que el repository principal sea un repo simple.

El problema es que git clone --bare no crea twigs de rastreo remotas. Entonces, para hacer un "repository simple pero con twigs de seguimiento remotas", comencé en este path

 git clone --bare <remote> repo.tmp mv repo.tmp.git reponame.wt.git cd reponame.wt.git git config core.bare true git config --remove-section branch.master ... and I'm not quite there yet ... 

Pero a) parece demasiado largo y complicado, yb) el repository de git todavía cree que se ha extraído el master .

¿Hay una mejor manera de hacer este "clon desnudo con controles remotos"?

(Quizás haya una forma mejor de configurar los treees de trabajo en general, pero entiendo que se pone al borde del scope de la "solución de progtwigción específica" del desbordamiento de la stack).

Puede configurar un repository vacío para tener twigs de seguimiento remoto con:

 git config --local --add remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*" 

Ejecuta git fetch y deberías verlos con git branch -a .

No creo que sea posible no tener el master (u otra sucursal) en el repository, pero con un repository vacío es seguro crear un tree de trabajo vinculado para ello de todos modos, por ejemplo:

 git worktree add --force <path> master 

A pesar de que el master está desprotegido en el repository desnudo, no hay un tree de trabajo principal para él si el repository está vacío, por lo que no terminará con dos treees de trabajo que se desincronizarían.