什么是;git config core.worktree“;什么意思?

什么是;git config core.worktree“;什么意思?,git,config,git-worktree,Git,Config,Git Worktree,我在正在使用的脚本中看到了这一行: git config core.worktree .. 我不确定git worktree做什么,但我确实不明白为什么要将其设置为。 有线索吗? 谢谢。。表示父目录 我不确定您是否询问。语法,或者脚本为什么使用父目录 对于git config core.worktree,请参阅 您可能希望发布脚本,以便人们理解为什么使用父目录。这可能是一种库共享策略 您正在配置的repo的内容很可能由多个其他repo通过子模块共享,但编写该脚本的人希望在本地将所有repo引用

我在正在使用的脚本中看到了这一行:

git config core.worktree ..
我不确定git worktree做什么,但我确实不明白为什么要将其设置为

有线索吗?
谢谢。

表示父目录

我不确定您是否询问
语法,或者脚本为什么使用父目录

对于
git config core.worktree
,请参阅


您可能希望发布脚本,以便人们理解为什么使用父目录。

这可能是一种库共享策略

您正在配置的repo的内容很可能由多个其他repo通过子模块共享,但编写该脚本的人希望在本地将所有repo引用到同一个工作副本(而不是每个repo都有自己的本地副本)

有利有弊……

请参阅:

Git有两种策略来分隔存储库文件夹所在的位置(
Git_DIR
),以及存储库跟踪的文件所在的位置(
Git_WORK_TREE
,也称为主工作/工作树)

core.worktree
更改主工作树的位置。在您的情况下,从默认等效的
,这是包含存储库文件夹的目录的父目录。在
core.worktree
中使用位于
GIT_DIR
之外的相对路径是您单独在房间里而不是在公共场所做的事情

他们为什么要这样做?跟踪多个存储库中的相同文件;原始开发人员可能在父文件夹的子文件夹中有多个存储库,所有这些存储库都使用
作为其
核心.worktree
配置。正如前面的回答所提到的,这可能是共享库的一种方式,但是有更好的策略来实现这一点

由于我提出了它,您可以使用任何git存储库,并将
.git
存储库文件夹替换为包含
gitdir:
.git
文件,以指向用作存储库文件夹的新位置。需要注意的是,
包含存储库文件夹名称,因此这是一种更改存储库文件夹名称的方法,因此它不是
.git
。执行此操作时,您可以在
.git
文件的位置执行git命令,因为它现在伪装为存储库文件夹

重要提示: 绝大多数git GUI都不正确支持
core.worktree
。任何使用此配置选项的存储库都只能通过终端命令进行处理。

可能重复的