Написать псевдоним git для ускоренной перемотки вперед, который работает в любой ветви отслеживания? - PullRequest
6 голосов
/ 22 февраля 2011

Я хотел бы создать псевдоним для следующих действий:

Работая в master, я бы хотел, чтобы git ff выполнил git merge --ff-only origin/master.Но я хочу, чтобы тот же псевдоним при запуске в maint выполнял git merge --ff-only origin/maint.Аналогично для любых других отслеживающих веток.Возможно ли это?

Ответы [ 3 ]

6 голосов
/ 23 февраля 2011

Престижность двух других ответов, но есть более простой способ, при условии, что ваши филиалы отслеживают удаленные филиалы:

git pull --ff-only

Бонус: это будет работать, даже если ваши филиалы отслеживают филиалы в репокроме происхождения, или отслеживание ветвей с разными именами.Также это действительно коротко.

5 голосов
/ 23 февраля 2011

Я думаю, что это может сработать:

[alias]
    ff = !sh -c 'branch=$(git symbolic-ref HEAD | cut -d '/' -f 3) && git merge --ff-only origin/$branch' -
1 голос
/ 23 февраля 2011

Возможно, есть лучшие способы сделать это, но эта команда должна работать:

git merge --ff-only origin/`git branch | grep "^\*" | cut -c 3-`

git branch перечисляет все локальные ветви;grep "^\*" выбирает текущую (с префиксом звездочки), а cut -c 3- обрезает звездочку, оставляя только фирменное имя.Обратные метки вставляют выходные данные этой команды, а именно branchname, в команду merge.

...