git - 分支名称包含 $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 check-ref-format
会根据所有规则检查引用名称:
Git 对引用的命名方式施加了以下规则:
它们可以包含斜杠 / 用于分层(目录)分组,但斜杠分隔的组件不能以点开头。或以序列 .lock 结尾。
它们必须至少包含一个 /。这会强制存在诸如 head/、tags/ 等类别,但实际名称不受限制。如果使用 --allow-onelevel 选项,则放弃此规则。
他们不能在任何地方有两个连续的点..。
它们不能在任何地方包含 ASCII 控制字符(即值低于 \040 或 \177 DEL 的字节)、空格、波浪号 ~、插入符号 ^ 或冒号:。
它们在任何地方都不能有问号 ?、星号 * 或左括号 [。有关此规则的例外情况,请参阅下面的 --refspec-pattern 选项。
它们不能以斜杠开头或结尾/或包含多个连续的斜杠(请参阅下面的 --normalize 选项以了解此规则的例外情况)
它们不能以点结尾..
它们不能包含序列@{。
它们不能是单个字符@。
它们不能包含 \。
请注意,分支名称的完整拼写是refs/heads/
该分支名称。
推荐阅读
- laravel - 将请求数据传递给模型观察者类
- python - list .remove() 函数是如何工作的?
- node.js - 使用 ioRedis 连接到 ElastiCache 时出现随机 SSL 握手错误
- swift - Swift Core Data 保存到 /dev/null 所以它只在内存中
- kubernetes - 通过切换到新池来升级GKE集群:集群间服务通信会失败吗?
- java - java Flux中按对象属性分组
- azure - 如何在 Azure DevOps Pipeline 中设置和读取用户环境变量?
- php - PHP合并具有相同键/值的数组
- django - 在 Django 动态 REST 中过滤
- r - 按 R 中的分组行折叠/组合日期范围