git crea una twig remota solamente (sin local)

Tengo una necesidad, a través de la automation, de crear una nueva sucursal en el control remoto git, pero necesito hacerlo sin la sobrecarga de get primero una copy local de repositorys potencialmente grandes.

A less que me falta algo (obvio o sutil), cada ejemplo que encuentro presume que quiero 'search', 'clonar' o 'pagar' el repository localmente, luego hacer una twig, luego presionar al origen.

Esto no es lo que quiero hacer. Necesito, a partir de una secuencia de commands que se ejecuta en un server de ubuntu donde no puedo permitirme la sobrecarga de la clonación de repositorys, simplemente agregar una twig al control remoto, para que otros puedan desplegar esa twig y comenzar a trabajar.

El caso de uso es que estoy trabajando con un marco de automation en el que aplicamos las mejores prácticas creando twigs de características antes de que los desarrolladores comiencen a trabajar.

Usando GitHub o GitLab esto es fácil a través de la API. En algunos casos en que mis clientes simplemente usan 'git', tengo que hacer esto usando la command-line y las secuencias de commands.

Sé que esto puede ser ambiguo, así que por favor avíseme si la pregunta no está clara.

AFAIK, esto no es posible. Sin embargo, usaría soluciones alternativas (en order ascendente):

  1. Si la política de security de tu cliente lo permite, crea una API para la máquina remota que crearía una nueva twig, por ejemplo, una request HTTP PUT [*] con authentication y el nombre de la nueva twig como parámetro. Luego, puede acceder a través de curl o su idioma favorito, sin necesidad de un acceso ssh completo.

  2. Crea una twig vacía, por lo que la clonación será muy rápida, incluso si el repository es grande. P.ej:

     git checkout -b empty git rm * git commit -m"create an empty branch" git push -u origin empty 

    Debe hacerlo solo una vez por repository. Luego, al clonar, puedes clonar solo esta twig usando el -b . P.ej:

     git clone -b empty --depth 1 <repo> 

    Tenga en count que --depth implica --single-branch .

    Ahora puedes crear una nueva twig con el nombre que quieras:

     git checkout -b <new-branch> 

    Después de que un desarrollador termina de trabajar en una function, la nueva twig se puede actualizar utilizando el -f :

     git push -f origin <local-branch>:<new-branch> 
  3. Use un git hook en el lado del cliente (es decir, el lado del desarrollador), que aplicará las mejores prácticas, por ejemplo, pre-push . Suponiendo, por supuesto, que tus compañeros de trabajo no lo ignoren 🙂

[*] o POST, pero dado que está proporcionando el nombre de la sucursal, debe ser idempotente.