В моем повседневном рабочем процессе 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)
Я хочу rebase все ветки моей темы поверх нового мастера:
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
, который мне не подходит.