Un repositorio git del tipo bare es un repositorio que no cuenta con una área de trabajo, lo que es la opción recomendada para los repositorios que se alojan en servidores.
Al momento de crearse un repositiorio, sea este de tipo bare o con su propia área de trabajo, este será creado con una rama master, a partir de la cual se podrán derivar nuevas ramas.
Cuando el repositorio cuenta con un área de trabajo propia, la conmutación entre ramas se realiza a través del comando git checkout nombre_rama
. Pero, cuando el repositorio es de tipo bare, está opción no se encuentra disponible.
Por otro lado, a fin de facilitar su uso, es recomendable que al clonar un repositorio alojado en un servidor este se posicione por defecto en la rama que consideremos estable, sea esta la rama original master o alguna a la que le hayamos asignado un nombre más descriptivo.
Para atender a este caso de uso se puede utilizar el comando git symbolic‑ref HEAD refs/heads/nombre_rama
que asocia el puntero HEAD (puntero al estado por defecto del repositorio) a la rama seleccionada.
En el siguiente ejemplo instalamos en nuestro servidor un fork del proyecto OpenWrt en el que forzamos que los usuarios que clonen nuestro repositorio se posiciones por defecto sobre la rama openwrt‑18.06:
$ git clone --bare https://git.openwrt.org/openwrt/openwrt.git mywrt.git Cloning into bare repository 'mywrt.git'... remote: Counting objects: 424048, done. remote: Compressing objects: 100% (115015/115015), done. remote: Total 424048 (delta 291304), reused 423170 (delta 290706) Receiving objects: 100% (424048/424048), 137.08 MiB | 19.60 MiB/s, done. Resolving deltas: 100% (291304/291304), done. Checking connectivity... done. $ cd mywrt.git/ $ git branch -vv lede-17.01 2328977 kernel: bump kernel 4.4 to 4.4.135 for 17.01 * master 4fdc6ca mvebu: fix broken console on WRT32X (venom) openwrt-18.06 ba204d9 Revert "ramips: Move PCI driver to files directory" $ git symbolic-ref HEAD refs/heads/openwrt-18.06 $ git branch -vv lede-17.01 2328977 kernel: bump kernel 4.4 to 4.4.135 for 17.01 master 4fdc6ca mvebu: fix broken console on WRT32X (venom) * openwrt-18.06 ba204d9 Revert "ramips: Move PCI driver to files directory"