创建分支并推送它 git alias

ura*_*aza 1 git alias zsh

如何创建一个别名来创建本地分支并将其推送到上游?我试过了

publish = !git checkout -b $1 && git push -u origin $1
Run Code Online (Sandbox Code Playgroud)

我明白了

Switched to a new branch 'mybranch/test'
error: dst ref refs/heads/mybranch/test receives from more      than one src.
error: failed to push some refs to 'ssh://myurl'
Run Code Online (Sandbox Code Playgroud)

Vam*_*ire 5

您的最终命令结果是用git checkout -b mybranch/test && git push -u origin mybranch/test mybranch/test$1一个参数替换的,并且该参数也被添加到命令的末尾。要么省略你的最后一个$1,这样你就有了

publish = !git checkout -b $1 && git push -u origin
Run Code Online (Sandbox Code Playgroud)

或者将您的命令链包装在类似的函数中

publish = !publish_new_branch() { [ $# -ne 1 ] && echo 'error: publish needs exactly one argument' >&2 && exit 1; git checkout -b \"$1\" && git push -u origin \"$1\"; }; publish_new_branch
Run Code Online (Sandbox Code Playgroud)

我通常更喜欢后一种选择,因为它更清楚会发生什么。