如何创建一个创建本地分支并将其推送到上游的别名?我试过了
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'
答案 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