2016-09-29 3 views
0

Как создать псевдоним, который создает локальную ветвь и толкает ее вверх по течению? Я попыталсяСоздать ветку и нажать ее git alias

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

Ваша последняя команда оказывается git checkout -b mybranch/test && git push -u origin mybranch/test mybranch/test в $1 замещен первым параметром, а параметр также добавляется в конце команды. Либо оставить из вашего последнего $1, так что у вас есть

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

или обернуть commandchain в функции как

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 

Я обычно prever последний вариант, поскольку это более ясно, что происходит.

+0

Сначала работал, другой не работал. publish_new_branch() {[$: -c: строка 1: синтаксическая ошибка: неожиданный конец файла. Благодаря! – uraza

+0

@uraza второй - это то, как вы передаете команду 'git config', а не как она содержится в файле конфигурации. Но поскольку синтаксис предполагает, что это строка из файла конфигурации, я обновил свой ответ. Вы должны избегать двойных кавычек, если вы редактируете файл напрямую, а не с помощью команд git. – Vampire

Смежные вопросы