【问题标题】:How to create a "detached" worktree (i.e. one that the main repo doesn't "know" about)?如何创建一个“分离的”工作树(即主仓库不“知道”的工作树)?
【发布时间】:2022-12-21 14:27:36
【问题描述】:

(注意:这是不是关于创建一个带有分离 HEAD 的工作树。)

添加了 git worktree add 的典型工作树(无论是使用 --detached 还是其他方式创建的)都在主存储库中维护其状态,包括其 HEAD 和 index。当您执行 git worktree list 时,主存储库“知道”它。

所以这里的问题是:如何创建主存储库的工作树没有“知道关于?工作树应在其自身内部维护其 HEAD 和 index,但引用父存储库以引用提交等。

【问题讨论】:

    标签: git


    【解决方案1】:

    原来这其实很简单。这只要你需要的是一个包含以下内容的目录:

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

    您现在可以在该目录中使用git reset、git checkout 等,它将引用提交图和所有需要的对象的原始存储库,但原始存储库不知道这些内容。

    【讨论】:

      猜你喜欢
      • 2017-02-14
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-26
      相关资源
      最近更新 更多