"主工作树"one_answers"主工作树"有什么区别吗?和一个"链接工作树"在git中?如果有,有什么不同?
Git有一个名为Git -worktree的子命令,用于管理一个存储库中的多个工作树。当使用以下命令克隆时:
git clone <url> --separate-git-dir=.git main
目录main
将包含"主工作树"。然后用git worktree add temp
创建一个新的工作树。temp
现在是一个"链接工作树"。
有什么方法可以区分这两种类型吗?有一点应该是,main
不能像temp
(git worktree remove temp
)那样被去除。但是,有没有其他的事情是可以/不可以用一种工作树而不是另一种工作树来做的呢?
可能vs不可能:一般来说,答案应该是否。对主工作树的唯一限制是不能删除它。
实际:是的,偶尔会显示其他位。例如,当作为git push
的接收者时,至少在旧版本的Git中,只考虑主工作树的分支。(这种情况可能仍然存在;我还没有测试过
Git内部必须区分"main"one_answers";added"因为传统文件的传统位置直接在.git
中:例如,.git/HEAD
包含主工作树的当前分支,.git/index
包含主工作树的默认索引。其他添加的工作树在别处有它们的HEAD
和索引文件。这就是那些"泄漏"出来的差异的根源。Git。它们不是有意要泄漏,但有时它们确实会泄漏。