创建分支并推送它git别名

时间:2016-09-29 14:45:08

标签: git alias zsh

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

publish = !git checkout -b $1 && git push -u origin $1

我得到了

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'

2 个答案:

答案 0 :(得分:2)

您的最终命令结果为git checkout -b mybranch/test && git push -u origin mybranch/test mybranch/test,因为$1被第一个参数替换,参数也会添加到命令的末尾。要么遗漏你的上一个$1,要么

publish = !git checkout -b $1 && git push -u origin

或将命令链包装在类似

的函数中
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

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

答案 1 :(得分:0)

之所以使用它,是因为我经常使用遥控器。第一个参数是远程参数;第二个是您的分支机构名称。 “ nb”代表“新分支”。

# ~/.gitconfig

[alias]
  nb = "!sh -c \"git checkout -b $2; git push -u $1 $2\" -"

用法:

git nb origin my-new-branch