Использование переменных в псевдониме 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'`
Другие вопросы по тегам