为什么Git refs没有文件扩展名

时间:2012-08-21 06:28:39

标签: git file reference branch

我最近在创建分支组时偶然发现了Git中的常见问题:

我有一个名为“ tim ”的分支 我想创建一个名为“ tim ”的文件夹/组,其中包含“ tim ”分支,导致分支路径为“ tim / tim < /强>”。

当我尝试这样做时,Git真的很讨厌我,因为根据Git,文件夹“ tim ”和分支引用“ tim ”完全相同。

我的问题是,如果有人知道为什么分支机构没有某种扩展来解决这个问题?说 .gitbranch 或其他什么?
显然,每当访问文件时,附加 .gitbranch 都需要做更多的工作,但与用户为解决此问题而必须做的工作相比,几乎没有任何工作要做。 ,当你在开发团队时,尤其是。 (之前克隆过repo的任何人都必须手动进入他们的refs文件夹并删除任何名为“ tim ”的分支痕迹,否则他们无法获取!)

如果这确实是一个合法的问题,我会用适当的渠道提出它,但我想检查是否有人可能知道为什么他们可能有目的地这样做了?

谢谢大家,

2 个答案:

答案 0 :(得分:5)

我认为这两种方式都没有任何特别的理由。在unix中,通常不使用文件扩展名,因此没有。这意味着您无法同时拥有foofoo/anything。这是记录在案的,现在是一成不变的,虽然远程引用通常以压缩格式存储在这一天的所有文件中。

然而:

    如果给出了git fetch-p)选项,
  • --prune应该足够聪明,可以在创建新分支之前修剪旧分支。如果没有,你一定要把它放在git邮件列表上。
  • 我只看到一种在gui中默认修剪的方法,但是在远程的fetch配置中没有。询问这一点也是有道理的。

答案 1 :(得分:0)

当您尝试将文件名tim(存储分支头)转换为目录名tim/(当您有斜杠时)时,由于引用的命名自由,Git可能会遇到困难(见git-check-ref-format)。