来自 Git 别名的 Bash 中的错误变量名称

Bad variable name in Bash from a Git alias

我的全局 git 配置中有以下 Git 别名。

pushnew = !f() { export tmp_branch=`git branch | grep '* ' | tr -d '* '` && git push --set-upstream origin $tmp_branch; unset $tmp_branch; }; f

当 运行 时,我得到以下输出:

 * [new branch]      bug/graphs -> bug/graphs
Branch bug/graphs set up to track remote branch bug/graphs from origin.
f() { export tmp_branch=`git branch | grep '* ' | tr -d '* '` && git push --set-upstream origin $tmp_branch; unset $tmp_branch; }; f: 1: unset: bug/graphs: bad variable name

我看过这个 question 但如果这是解决方案,那么我如何在 Git 别名的上下文中应用修复?

应该是:

unset tmp_branch

如果您尝试取消设置 $tmp_branch,shell 将替换 $tmp_branch 的值,尝试取消设置 bug/graphs