5

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

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

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

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

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

谢谢大家,
蒂姆

4

2 回答 2

5

我认为这两种方式都没有任何特别的理由。在 unix 中,通常不使用文件扩展名,所以没有。这意味着您不能同时拥有fooand foo/anything。尽管现在远程引用通常以打包格式存储在一个文件中,但它已被记录在案,现在一成不变并且不会改变。

然而:

  • git fetch-p如果给出( --prune) 选项,应该足够聪明地在创建新分支之前修剪旧分支。如果没有,你绝对应该把它放在 git 邮件列表中。
  • 我只在 gui 中看到了一种默认修剪的方法,但在远程的 fetch 配置中看不到。问这个也是有道理的。
于 2012-08-21T07:48:24.000 回答
0

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

于 2012-08-21T22:50:04.250 回答