Как повторно наложить коммиты поверх несвязанной ветки?

У меня есть простой репозиторий с линейной историей коммитов, например:

[A] -> [B] -> [C] -> [D] -> [E] ...

Мне в основном нужно удалить коммиты A и B, поэтому я решил создать новый репозиторий и хотел бы добиться чего-то вроде:

[X] -> [C] -> [D] -> [E] ...

Итак, я создал новый репозиторий, вручную создал коммит X, который хранит соответствующую информацию из A и B, и теперь мне нужна команда, которая принесет коммиты C, D, E и т. д. из оригинального репозитория и поместит их поверх моего нового коммита X.

Как это сделать?

Edit: Две проблемы, которые у меня возникли с предложенным методом cherry-pick:

  1. Перенесённые коммиты потеряли свои даты. Есть ли способ сохранить даты коммитов?
  2. Когда я извлекаю мастер из оригинального репозитория (и этот удалённый мастер не имеет ни одного общего коммита с новым репозиторием), у меня возникают проблемы с удалением этих извлечённых коммитов. Когда я делаю git branch -D myoriginalrepo/master, он говорит, что такой ветки не существует, в то время как я могу ясно видеть эти коммиты в моём GUI-инструменте.
10
задан Borek Bernard 1 February 2012 в 03:01
поделиться