我正在开发一些服务器端软件来进行合并。通过使用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 维护人员取得了联系,他们同意这可能是一个错误。我从他们那里得到了一个初步的补丁来测试。此外,我还能够在没有补丁 的情况下重现所需的行为。
在这一点上,我不完全确定边界条件或根本原因是什么,并且可能会从 git 中得到修复。