В моем повседневном рабочем процессе git у меня много тематических веток, например:
o--o--o (t2) / o--o (t1) / o--o--o (master) \ o--o--o (t3)
Когда я извлекаю из восходящего потока,
o--o--o (t2) / o--o (t1) / o--o--o--n--n--n (master) \ o--o--o (t3)
я хочу перебазировать все свои тематические ветки поверх новый мастер:
o'--o'--o' (t2) / o'--o' (t1) / o--o--o--n--n--n (master) \ o'--o'--o' (t3)
В настоящее время я делаю это вручную, используя git rebase --onto
. В этом сценарии весь процесс обновления будет выглядеть следующим образом:
$ git checkout master
$ git pull
$ git rebase master t1
$ git rebase --onto t1 t2~3 t2
$ git rebase master t3
Это становится еще более сложным при переходе между различными ветками темы и добавлении коммитов.
Зависимости между тематическими ветками в моем случае чисто древовидные: ни одна ветка не зависит более чем от одной другой ветки. (В конечном итоге я должен передать зависимые исправления в определенном порядке, поэтому я выбираю этот порядок априори.)
Существуют ли какие-либо инструменты, которые могут помочь мне управлять этим рабочим процессом? Я видел TopGit , но, похоже, он довольно сильно привязан к рабочему процессу на основе электронной почты tg patch
, который мне не важен.