我可以为空的 Git 存储库创建工作树吗?

aba*_*abo 6 git git-worktree

我有一个空的 Git 存储库(即它尚未包含任何提交)。git worktree add有没有办法使用命令(带有--no-checkout选项)为此存储库创建工作树?我的意思是指示 Git 不要将新创建的工作树与任何工作树关联HEAD

tor*_*rek 8

在完全空的存储库中,不能有分支,因为每个分支名称必须标识一个实际的现有提交。1 但是,主工作树必须位于某个分支上。因此,Git 将其放在一个不存在的分支上,Git 将其称为未出生分支(在各种消息和内部代码中)和孤立分支(在诸如 之类的标志中git checkout --orphan)。

理论上,git worktree add也可以允许--orphan, 在未出生的分支上放置一个新的工作树。但目前它并没有这样做。如果您希望为 Git 编写新代码以允许其执行此操作,并将其发送给 Git 维护人员,那么它可能会包含在未来的 Git 版本中。包含某种相当引人注目的用例可能是个好主意。

在那之前,您不能这样做:您必须至少进行一次初始提交(然后允许创建无限数量的分支名称)。

编辑:它似乎--orphan可能会出现在下一个 Git 版本中(可能是 2.40)。请参阅VonC 的评论


1这个限制有点任意,但 Git 无论如何都会这样做,所以人们必须忍受它(或重写 Git)。

  • [此补丁集](https://public-inbox.org/git/20221104213401.17393-1-jacobabel@nullpo.dev/)(2022 年 11 月)似乎相关。 (2认同)