【发布时间】:2018-02-06 00:31:33
【问题描述】:
我试图用 ~ 波浪符号表示来自贡献用户的 Git 分支,类似于用于在类 UNIX 操作系统上引用主文件夹的符号,但 Git 阻止我这样做,因为它中止分支创建带有错误消息fatal: '~' is not a valid branch name. 贡献者的分支名称应类似于~alice/feature/foo、~bob/bugfix/bar 等。
以下命令均不适用于 Git 版本 2.14.1:
$ git checkout -b '~'
fatal: '~' is not a valid branch name.
$ git checkout -b '~bar'
fatal: '~bar' is not a valid branch name.
$ git checkout -b 'foo~'
fatal: 'foo~' is not a valid branch name.
$ git checkout -b 'foo~bar'
fatal: 'foo~bar' is not a valid branch name.
目前,我决定将@ at 符号作为我的通用前缀。但是我正在重新考虑将相当不寻常的字符作为我的分支名称的一部分而不是- 连字符和_ 下划线符号作为单词分隔符的决定,因为Git 本身或底层文件系统a Git 可能施加的限制存储库恰好是例如签出并因此存储。
【问题讨论】:
-
重复的问题链接需要再次审核。 git中的分支名称实际上是一个文件夹。 ~ 表示 unix 系统中的主目录。因此,该文件夹已经存在,因此 git 无法创建这样的分支。这个问答有一些细节stackoverflow.com/questions/2527355/…
-
@Eyorther
~是 linux 中一个非常合适的目录名。mkdir \~就像一个魅力。 -
@CodeCaster 我投票决定重新提出这个问题,因为:1/ 我用建议的副本中不存在的信息来回答这个问题,并且 2/ 这不是一个完美的副本:OP 询问为什么它被禁止,如果被禁止,则不会。
-
@YSC mkdir ~ 和 mkdir /~,是有区别的。后者在根文件夹中创建一个目录~。
-
@Eyorther 主目录的波浪号名称是由 shell 管理的简写,而不是由系统或内核管理。
mkdir \~将使 shell 忽略波浪号并将名称mkdir作为第一个参数传递给~原样。mkdir完全能够创建一个名为~的目录。这对他来说毫无意义(它?)。
标签: git git-checkout