我最近在创建分支组时偶然发现了Git中的常见问题:
我有一个名为“ tim ”的分支 我想创建一个名为“ tim ”的文件夹/组,其中包含“ tim ”分支,导致分支路径为“ tim / tim < /强>”。
当我尝试这样做时,Git真的很讨厌我,因为根据Git,文件夹“ tim ”和分支引用“ tim ”完全相同。
我的问题是,如果有人知道为什么分支机构没有某种扩展来解决这个问题?说 .gitbranch 或其他什么?
显然,每当访问文件时,附加 .gitbranch 都需要做更多的工作,但与用户为解决此问题而必须做的工作相比,几乎没有任何工作要做。 ,当你在开发团队时,尤其是。 (之前克隆过repo的任何人都必须手动进入他们的refs文件夹并删除任何名为“ tim ”的分支痕迹,否则他们无法获取!)
如果这确实是一个合法的问题,我会用适当的渠道提出它,但我想检查是否有人可能知道为什么他们可能有目的地这样做了?
谢谢大家,
添
答案 0 :(得分:5)
我认为这两种方式都没有任何特别的理由。在unix中,通常不使用文件扩展名,因此没有。这意味着您无法同时拥有foo
和foo/anything
。这是记录在案的,现在是一成不变的,虽然远程引用通常以压缩格式存储在这一天的所有文件中。
然而:
git fetch
(-p
)选项,--prune
应该足够聪明,可以在创建新分支之前修剪旧分支。如果没有,你一定要把它放在git邮件列表上。答案 1 :(得分:0)
当您尝试将文件名tim
(存储分支头)转换为目录名tim/
(当您有斜杠时)时,由于引用的命名自由,Git可能会遇到困难(见git-check-ref-format
)。