2016-02-12 2 views
2

Я работаю над следующим мерзавца псевдонимомGit команды оболочки псевдоним давая «плохой конфигурационный файл» ошибка

[alias] 
    pushup = !git push --set-upstream origin `git branch | egrep "^\*" | awk -F"*" '{print $NF}'` 

который должен сделать GIT толчок, одновременно установив на входе в текущей ветке.

Команда

git push --set-upstream origin `git branch | egrep "^\*" | awk -F"*" '{print $NF}'` 

прекрасно работает сам по себе в командной строке, но я получаю плохих конфигурационный файл ошибку в когда я пытаюсь использовать его в качестве псевдонима мерзавца.

Очевидно, я ничего не понимаю о формате псевдонимов git. Кто-нибудь хочет просветить меня?

+0

Wild догадку, но что с этим делать ''!? Не следует ли '! Git' быть' git'? –

+1

@BenjaminW. используется для запуска внешних команд в git-псевдонимах. (Требуется для замены команды) – muru

ответ

1

Я не уверен, что пошло не так, но следующий упрощенный псевдоним работает для меня:

[alias] 
    pushup = !git push --set-upstream origin $(git branch | awk '/^*/{print $2}') 

Вместо * для оглавлению, а затем разделив на него, вы можете рассчитывать на awk «s расщеплению на пробельных для автоматического получения имени филиала в качестве второго поля, а также используйте командуdo grep.

Vim выделяет \* как ошибка, и когда я пытаюсь с ним, я получаю сообщение об ошибке вы получили (я использую echo для отладки: D):

enter image description here

Так что это причина Ошибка. Я до сих пор не знаю почему.

Я полагаю, вы можете также использовать более простую команду this SO post:

[alias] 
    pushup = !git push --set-upstream origin $(git rev-parse --abbrev-ref HEAD) 
+0

Отличный ответ. Спасибо за А.), рассказывающий об использовании awk для выполнения grep-части и B.) гораздо более аккуратный способ получить имя текущей ветви. –

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