Я использую git rebase --onto target source foo
для перемещения ветки foo
из ветки source
в ветку target
. Знаете ли вы, можно ли использовать хеш-значения вместо имен веток (если они не указаны), например: git rebase --onto ab91c f4242 foo
?
В качестве обходного пути я временно добавил имена веток в соответствующие объекты фиксации. Но это может быть питой, если у вас есть много веток для перебазирования.
Пример ситуации:
° bb42a
° ab91c
° 979c2
/° fb648 foo
° f4242 --
° 333c9
После git rebase --onto ...
° bb42a
/° fb648 foo
° ab91c --
° 979c2
° f4242
° 333c9
Предыстория:
Объясняемая проблема очень распространена, если вы используете svn-сервер в качестве удаленного репозитория. Все объекты, которые вы фиксируете, перезаписываются, так как svn-id будет добавляться каждый раз, когда вы git svn dcommit
в svn-репозиторий. Это отсоединит все остальные ветки от их прежнего мастера.
git svn rebase
сильно отличается отgit rebase
. - person VonC   schedule 29.06.2011