В моем ежедневном рабочем процессе 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
, что не имеет для меня отношения.