git 如何创建一个“分离的”工作树(即主存储库不“知道”的工作树)?

fivyi3re  于 2022-12-25  发布在  Git
关注(0)|答案(1)|浏览(117)
  • (注意:这不是关于创建带有分离HEAD的工作树。)*

一个典型的添加了git worktree add的工作树(无论是用--detached还是其他方式创建的)在主存储库中维护其状态,包括它的HEADindex
所以问题是:如何创建一个主存储库“知道”的工作树?工作树应该在自己内部维护它的HEADindex,但是要引用父存储库来引用提交等等。

xwbd5t1u

xwbd5t1u1#

事实证明这其实非常简单,唯一需要的是一个包含以下内容的目录:

  • .git/HEAD,包含提交哈希(以换行符终止)
  • .git/commondir,包含从该文件本身到主.git目录的相对路径(以换行符终止)

现在您可以在这个目录中使用git resetgit checkout等,它将引用原始仓库来获取提交图和所有需要的对象,但原始仓库并不知道这些对象。

相关问题