【发布时间】:2017-02-14 10:20:47
【问题描述】:
我正在开发一些服务器端软件来进行合并。通过使用git worktree,可以检查给定分支的裸仓库并将另一个分支合并到其中。即使存储库很大,它也非常快。
唯一的例外似乎是合并到master。当我执行git worktree add /tmp/path/to/worktree master 时出现错误:
致命:'master' 已在 '/path/to/bare/repo' 签出
但这显然不是真的,git worktree list 给出:
/path/to/bare/repo(裸)
...当然,该路径上没有工作树,只有您期望的裸 repo 文件。
更新:我与 git 维护人员取得了联系,他们同意这可能是一个错误。我从他们那里得到了一个初步的补丁来测试。此外,我还能够在没有补丁的情况下重现 desired 行为。
在这一点上,我不完全确定边界条件或根本原因是什么,git 可能会提供修复。
【问题讨论】:
-
从阅读文档看来,您可能需要传递
-b选项来创建一个分支以使其工作。 -
嗯。但是这个 repo 中有一个现有的 master 分支。错误消息似乎也证实了这一点。从我上面的描述中可能不清楚,但是这种方法与其他分支一起工作正常(没有错误消息),包括将 from master 合并到另一个分支。
标签: git version-control merge git-bare git-worktree