Git: поддержание множества тематических веток на часто обновляемой базе

В моем повседневном рабочем процессе 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 , который мне не важен.

16
задан nornagon 23 February 2012 в 09:23
поделиться