如何使用分支名称的字符串格式别名 git checkout -b

How to alias git checkout -b with a string format for the branch name

我的团队为我们的分支名称使用一种格式以保持统一。对于给定的分支,格式为:“feature/TeamName-CardNumber”。卡号是其中唯一会改变的部分,所以我想创建一个别名,例如:

git cobf '111'

其中111是卡号。

我试过这个命令来设置别名:

git config --global alias.cobf 'checkout -b feature/TeamName-"

但是当 运行 git cobf 111 命令时,我收到一条错误消息,指出 111 不是提交,无法从中创建分支。

为什么会失败?

因为别名扩展后,你的命令解析为

git checkout -b feature/TeamName- 111

...git 的意思是“签出一个名为 feature/TeamName- 的新分支,指向 committish 111”(粗略地说, “committish”是指提交或指向一个的东西,如分支或标签)


该怎么办?

为避免这种情况,请使用临时 bash 函数来更方便地处理参数:

git config --global alias.cobf '!f() { git checkout -b feature/TeamName-; }; f'

注意:调用别名时不需要引号,git cobf 111 即可。