首页 > 解决方案 > 分支名称包含 $variable 时无法创建分支

问题描述

我无法在本地创建分支,在分支名称中传递变量时,我无法创建分支。

cd project-directory
export VERSION="`grep VERSION version.txt | cut -d"=" -f2`"
echo $VERSION
response:
**20.12.20**


git checkout -b test-release/${VERSION}
response:
**fatal: '20.12.20' is not a commit and a branch 'test-release/' cannot be created from it**

git checkout -b test-release/20.12.20
response
**Switched to a new branch 'test-release/20.12.20'**

我可以知道可能是什么问题吗

标签: git

解决方案


我不确定它们还记录在哪里,但git check-ref-format会根据所有规则检查引用名称:

Git 对引用的命名方式施加了以下规则:

  1. 它们可以包含斜杠 / 用于分层(目录)分组,但斜杠分隔的组件不能以点开头。或以序列 .lock 结尾。

  2. 它们必须至少包含一个 /。这会强制存在诸如 head/、tags/ 等类别,但实际名称不受限制。如果使用 --allow-onelevel 选项,则放弃此规则。

  3. 他们不能在任何地方有两个连续的点..。

  4. 它们不能在任何地方包含 ASCII 控制字符(即值低于 \040 或 \177 DEL 的字节)、空格、波浪号 ~、插入符号 ^ 或冒号:。

  5. 它们在任何地方都不能有问号 ?、星号 * 或左括号 [。有关此规则的例外情况,请参阅下面的 --refspec-pattern 选项。

  6. 它们不能以斜杠开头或结尾/或包含多个连续的斜杠(请参阅下面的 --normalize 选项以了解此规则的例外情况)

  7. 它们不能以点结尾..

  8. 它们不能包含序列@{。

  9. 它们不能是单个字符@。

  10. 它们不能包含 \。

请注意,分支名称的完整拼写是refs/heads/该分支名称。


推荐阅读