我正在处理一些服务器端的软件合并问题。通过使用 git worktree
,可以将一个裸仓库(bare repo)的某个分支检出并将另一个分支合并到它上面。即便对于大型代码库,这也非常快速。
唯一的例外似乎是合并到 master
分支。当我执行 git worktree add /tmp/path/to/worktree master
时,会出现以下错误:
fatal: 'master' is already checked out at '/path/to/bare/repo'
但事实显然并非如此,git worktree list
显示:
/path/to/bare/repo (bare)
...当然,在该路径下没有工作树,只有你所期望的裸仓库文件。
更新: 我联系了 git 维护者,他们同意这可能是一个 bug。他们给了我一个初步的补丁进行测试。此外,我还能够在没有补丁的情况下复制所需的行为。
此时我不太确定边界条件或根本原因是什么,并且可能会从 git 那里获得修复。