将git分支安装在容器中

时间:2017-03-24 22:00:56

标签: git docker

我有一个包含2个不同分支的git存储库,例如masterfoo

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"

现在我想将masterfoo作为单独的卷挂载到容器中,以便在我的容器中使用此架构:

.
├── foo
│   └── foo
└── master
    └── master

有可能吗?

3 个答案:

答案 0 :(得分:3)

您可以使用两个git worktrees。工作项允许您在不同的路径上签出多个分支。

$ 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 clean

然后将这些目录挂载到容器中。

答案 1 :(得分:1)

您需要两个克隆,一个签出master签名,另一个签出foo签名。它们可以是浅色克隆以节省空间。

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 foo

在VM中只有一个克隆并像普通的git clone一样使用它可能更有意义。

答案 2 :(得分:0)

我不相信你可以按原样安装git分支。 但是,如果Schern回答不够(你可能想要一个公共存储库和两个工作目录),我建议你查看: https://git-scm.com/docs/git-worktree

这样,两个目录将共享相同的.git目录(一个将是git查看另一个目录的指令)