为什么某些 Git 分支名称中包含斜杠?

use*_*968 8 git

我正在阅读本教程 https://www.atlassian.com/git/tutorials/syncing/git-fetch

它包含一个添加远程存储库的示例

git remote add coworkers_repo git@bitbucket.org:coworker/coworkers_repo.git

然后获取一个分支

git fetch coworkers_repo coworkers/feature_branch
fetching coworkers/feature_branch
Run Code Online (Sandbox Code Playgroud)

在最后一个命令中,为什么分支名称“coworkers/feature_branch”的名称有一个正斜杠?分支不应该是一串字符,例如“coworkers”或“feature_branch”吗?或者我有什么遗漏的吗?

ish*_*ood 9

允许使用斜杠(以及其他特殊字符),并且某些 Git UI 软件(例如 SourceTree)将使用它们对分支进行分组,就像在文件夹中一样。这会导致类似这样的结果:

coworkers
  feature_branch1
  feature_branch2
customers
  feature_branch1
  feature_branch2
Run Code Online (Sandbox Code Playgroud)

正如Keith Thompson指出的那样,“一/二和一/二/三都是有效的分支名称,但不能在同一个存储库中同时拥有这两个名称。由于分支在 .git 目录树中的表示方式,这将导致要求 one/two 既是常规文件又是目录。”