Использование переменных в псевдониме git
Я пытаюсь создать псевдоним для проверки основной ветви и объединения ветви, в которой я находился до переключения. Прямо сейчас мой псевдоним выглядит так:med = "!f() { git checkout master; git merge ${1}; git branch -d ${1}; }; f"
Это означает, что каждый раз, когда я хочу использовать его, я должен вызывать его, используя имя текущей ветви: git med topic
, То, что я хочу, это избежать этого, звоня git med
без аргументов.
Я знаю, что могу получить имя текущей ветки следующим образом: git rev-parse --abbrev-ref HEAD
, но после того, как я переключился на мастера, я больше не могу его использовать. Итак, мне нужно сохранить его в переменной, прежде чем перейти к мастеру.
Как мне работать с переменными в git alias?
Я на Windows, использую Posh-Git.
2 ответа
Это сочетание моего комментария и @torek:
med = "!f() {BRANCH=`git symbolic-ref --short HEAD`; git checkout master; git merge $BRANCH; git branch -d $BRANCH; }; f"
который, кажется, работает. (И выручает скорее рано, чем поздно, если вы находитесь в отсоединенном состоянии HEAD)
Я обнаружил в bash (debian), что заключение псевдонима в двойные кавычки не работает.
Мне пришлось использовать одинарные кавычки:
'!f() { BRANCH=`git symbolic-ref --short HEAD`; git checkout master; git merge $BRANCH; git branch -d $BRANCH; }; f'`