git rebase
- твой друг.
Один простой способ сделать это состоит в использовании git branch
производить три идентичных ветви (разработка, NewBranchTwo, NewBranchThree), который затем редактировать вниз с помощью
git rebase --interactive C1
... замена C1 с хэш-х или фиксации другой ссылка. В интерактивном режиме git сначала откроет текстовый редактор, где он покажет вам всю историю, и где коммиты будут применяться по порядку сверху вниз в соответствии с любыми удалениями или переупорядочениями, которые вы делаете в редакторе. Вы можете легко удалить C3-C5 для разработки и внести соответствующие изменения в другие ветви.
Вы также можете пропустить интерактивный режим и использовать git reset
и git rebase --onto
, чтобы переместить C6 на C2 и имя, которое разрабатывается, и то же самое с C3 на вашу верхнюю головку и C5 на это (и т.д.). Не зная фактических хэшей или родительского элемента C1, я оставлю фактические команды там git rebase documentation.
(Вы кладете git-revert в тегах, но если вы пытаетесь разделить фиксации, git revert
не поможет:. Он записывает новых коммитов, которые отменяют существующие коммиты, не удаляя их Если вы хотите историю, чтобы посмотреть как это делает, а не C1 C2 C3 C4 C5 C6 rev-C5 rev-C4 rev-C3
, вам необходимо перебазировать или иным образом изменить историю.)
Как вы, наверное, знаете, в любое время вы регулировочные фиксации, которые уже произошли, то изменить их хэш и могут затруднить для всех, кто уже разветвлен. Надеюсь, вы еще не продвинули свою удаленную ветку развития!
Я закончил делать что-то еще, но я думаю, что ваша идея - лучшая –