У меня есть ветка с большой функцией, которую мы можем назвать A, и я создал ветку B из последнего коммита A.
Через некоторое время я создаю запрос на извлечение в Github, чтобы объединить B с О. Но поскольку я не хочу ждать, я создаю ветку C из B, прежде чем она будет объединена.
[A] a---b---c---c1---c2
\(A)
[B] d---e---f
\(B)
[C] g---h
Я зафиксировал на C, а между тем ветвь B была объединена с A Поэтому я хочу очистить свою работу и обновить локальную букву А, вытянув ее из источника, чтобы у меня была такая ситуация:
[A] a---b---c---c1---c2---d---e---f
\(A)
[C] g---h
Теперь вот моя проблема: я хочу, чтобы C был перебазирован на A, но поскольку B был объединен и удален (даже локально, потому что я вытащил), поэтому, чтобы перебазировать его, я не могу сделать что-то вроде:
git rebase B C --onto A
Но B больше не существует, поэтому, когда я git log, это в основном то, что у меня есть:
[A]a---b---c---c1---c2
[C] d'---e'---f'---g---h
(This is what I have to do in order to rebase)
git rebase f' C --onto A
Это работает, но мне нужно проверить, что га sh последнего коммита из BI можно угадать из C (здесь это f '), и я могу ошибиться здесь (и это выглядит ужасно, как если бы все коммиты из B alw ays были включены).
Есть ли лучший способ перенести C на A после слияния B? Может быть, я должен что-то сделать, прежде чем потянуть A?
Если это не совсем понятно, пожалуйста, дайте мне знать (я не задаю здесь вопросы часто! :))