Tengo un repositorio de git con 2 ramas distintas, por ejemplo, master y foo :
mkdir test && cd test git init echo master > master git add . && git commit -m "init master" git checkout -b foo rm master echo foo > foo git add . && git commit -m "init foo" Ahora quiero montar master y foo en un contenedor como volúmenes separados, para tener esta arquitectura en mi contenedor:
. ├── foo │ └── foo └── master └── master¿Es posible?
Podrías usar dos árboles de trabajo de git . Los árboles de trabajo le permiten tener más de una rama desprotegida en diferentes rutas.
$ git status On branch master … $ git worktree add ../develop Preparing ../develop (identifier develop) HEAD is now at fbbbc04 netcat6 for gnks $ git -C ../develop status On branch develop nothing to commit, working tree cleanLuego monte esos directorios en su contenedor.
Necesitaría dos clones, uno con master desprotegido y otro con foo desprotegido. Pueden ser clones superficiales para ahorrar espacio.
git clone file:///full/path/to/the/repo --depth 1 --branch master master git clone file:///full/path/to/the/repo --depth 1 --branch foo fooPodría tener más sentido tener solo un clon dentro de la VM y usarlo como un clon de git normal.
No creo que puedas montar ramas de git tal cual. Sin embargo, si la respuesta de Schern no es suficiente (es posible que desee tener un repositorio común y dos directorios de trabajo), recomendaría investigar esto: https://git-scm.com/docs/git-worktree
De esa manera, ambos directorios compartirán el mismo directorio .git (uno será una instrucción para que git busque en el otro)