Поэтому я пытаюсь придумать псевдоним ZSH для Git, который переместит мою текущую ветвь на ветку, из которой она была первоначально получена (разветвлена).
Примеры:
Даны следующие названия ветвей A
и B
Если я время от времени создаю ветвь B
путем ветвления от A
я бы хотел быть в курсе событий B
с A
Чтобы сделать это вручную, я бы обычно делал:
git rebase A
Который погасит коммиты с точки разветвления на B
поверх A
Учитывая, что я хочу, чтобы команда делала это автоматически для любой ветки, над которой я работаю, это то, куда я направлялся:
git rebase --onto A {commit-hash-of-fork-point} B
Я считаю, что эта команда даст коммит точки форка:
git merge-base --fork-point A B
Итак, объединяя их:
git rebase --onto A $(git merge-base --fork-point A B) B
Как я могу написать это как общий псевдоним для ZSH, чтобы я мог просто вызвать gr
и он определит текущую ветвь, разветвленную ветвь и т.д.