为什么分支名称在开头不能包含'hash'(#)char?

时间:2018-04-05 06:58:18

标签: git workflow naming-conventions git-branch git-checkout

这一个

git checkout -b #1-my-awesome-feature

创建错误

error: switch `b' requires a value

使用反斜杠转义它或将其包装在引号中将起作用

git checkout -b \#1-my-awesome-feature

但这很奇怪

git branch #1-my-awesome-feature

会产生任何错误,如果您检查是否使用

创建了错误
git branch --all

没有分支。

如果散列字符不在分支名称的第一个位置,则分支将创建

git branch feature-#1

执行git branch

feature-#1
* master

所以我的问题是hash(#)char是如何在终端中“翻译”的,以及为什么它在第一时间不起作用?

谢谢!

1 个答案:

答案 0 :(得分:7)

#表示评论正在开始(至少在linux shell中)。所以

git checkout -b #1-my-awesome-feature

变为:

git checkout -b

并抛出b选项需要值的错误。

如图here所示,您可以通过使用#转义\或将名称放在单/双引号中来解决此问题:

git checkout -b \#1-my-awesome-feature
git checkout -b "#1-my-awesome-feature"
git checkout -b '#1-my-awesome-feature'