Как перебазировать ветку с предыдущего форка в одну команду?

383
Camsoft

Поэтому я пытаюсь придумать псевдоним ZSH для Git, который переместит мою текущую ветвь на ветку, из которой она была первоначально получена (разветвлена).

Примеры:

Даны следующие названия веток Aи B. Если я время от времени создаю ветку Bпутем разветвления, Aя бы хотел быть Bв курсе A.

Чтобы сделать это вручную, я бы обычно делал:

git rebase A 

Который погасит коммиты с точки форка Bна вершине A.

Учитывая, что я хочу, чтобы команда делала это автоматически для любой ветки, над которой я работаю, это то, куда я направлялся:

git rebase --onto A B 

Я считаю, что эта команда даст коммит точки форка:

git merge-base --fork-point A B 

Итак, объединяя их:

git rebase --onto A $(git merge-base --fork-point A B) B 

Как я могу написать это как общий псевдоним для ZSH, чтобы я мог просто позвонить, grи он определит текущую ветвь, разветвленную ветвь и т. Д.

0
Вы не можете указывать параметры в псевдонимах, но вместо этого можете использовать функцию: `gr () `. Это будет определено в одном из файлов запуска. AFH 6 лет назад 2
Как бы я превратил это в псевдоним и затем назвал бы это? Camsoft 6 лет назад 0
Вы не вызываете его как псевдоним: вы вызываете его как функцию, хотя вызов будет выглядеть одинаково; например, `gr AB` расширится до вашей последней объединенной команды. AFH 6 лет назад 0

0 ответов на вопрос