Как распространить коммит на дочерние ветви?

Как вы можете видеть ниже, у меня есть вложенные ветви: шаг 1 основан на шаге 0, шаг 2 основан на шаге 1 и так далее.

Я сделал новый коммит на шаге 0 под названием "Обновленная инструкция" (выделен оранжевым цветом), и теперь я хотел бы, чтобы этот коммит применялся ко всем дочерним ветвям.=> Поместите фиксацию "Обновленная инструкция" между "Обновление шага 0" и "Шаг 1"

фактический

репо Гитг визуализация

Что бы я хотел

Что бы я хотел

Я подумал о том, чтобы оформить push rebase push, одну ветку за одной, но я не уверен, что это сработает, и это боль.

1 ответ

Решение

Первый, git checkout -b step-1 origin/step-1:

git rebase origin/step-0

После этого, git checkout -b step-2 origin/step-2:

git rebase step-1

Повторяйте, пока все ветви не будут линеаризованы:

git checkout -b step-<n> origin/step-<n>
git rebase step-<n-1>

И, наконец, git checkout master:

git rebase step-7

Когда вы закончите:

git push --force origin step-1 step-2 step-3 step-4 step-5 step-6 step-7 master

Конечно, это требует много печатания, но вы можете легко автоматизировать это на любом языке сценариев. Возможно, вы могли бы сэкономить время написания сценария для одноразовой работы и просто приступить к выполнению ваших операций вручную.:)

Другие вопросы по тегам