git存储库可以有N个工作树吗?

时间:2014-03-07 18:28:19

标签: libgit2

我尝试根据libgit2编写文件存储。 软件快照应保存为分支mysoftware,并提交和标记特定版本。然后我想将标签签出到不同的目录。

在查看git_checkout_tree时,似乎只有一个工作树可用于存储库,因此甚至不可能同时检出多个工作树。 这是对的吗??

修改

此外,我希望这个东西可以在Windows上运行,而不需要cygwin!

2 个答案:

答案 0 :(得分:3)

git_checkout_opts中的libgit2结构包含target_directory选项,允许git_checkout_tree()写入不同的目录,而不是使用存储库的默认工作树。这将允许您使用libgit2自定义构建一个维护多个签出副本的解决方案。

不使用该选项,libgit2 git_repository对象期望只有一个工作目录,如果它不是“自然”工作目录,则查找core.worktree配置选项对于存储库。

git-new-workdir目录中带有符号链接的.git技巧现在对libgit2不起作用,我担心,特别是在Windows上效果不佳。我很乐意看到这个问题,但我的优先级列表并不是太高。

答案 1 :(得分:1)

Git本身并不支持此功能,但您可以使用git-new-workdir来执行此操作。