git主工作树和链接工作树的区别?



"主工作树"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。它们不是有意要泄漏,但有时它们确实会泄漏。

相关内容