首页 > 解决方案 > 为什么在使用单独的 git 目录时,包含 `.git` 目录的文件夹仍以某种方式与主工作树文件夹相关联?

问题描述

使用单独的 git dir 选项克隆 repo 后,根文件夹在 git version 中的行为很奇怪2.31.0

/local/repo> git clone <url> --separate-git-dir=.git main

在这个命令之后,目录结构是:

/local/repo
  /.git
  /main

对于某些命令,/local/repo仍然似乎与工作树相关联/local/repo/main。例如:


转变

/local/repo> git switch banana
Switch to branch 'banana'
D       a_file_in_the_repo.txt

站在 时可以切换主工作树的分支/local/repo,但是这样做时,存储库中的所有文件都被列为已删除( )(因为我猜D它们在当前目录的相对路径中不可用,但实际上应该是我认为在这里使用过?)。这不是很奇怪吗?/local/repo/local/repo/main


工作树列表 -v

/local/repo> git worktree list -v
/local/repo       <hash0> [main]

为什么 main 的工作树列出在/local/repo而不是/local/repo/main


分支-vv

/local/repo>git branch -vv
main <hash0> [origin/main] <commit message>

为什么站立时不打印工作树的本地目录/local/repo?预期输出:

/local/repo>git branch -vv
main <hash0> (/local/repo/main) [origin/main] <commit message>

标签: git

解决方案


推荐阅读