Я вносил некоторые изменения в ветку A
, и некоторые файлы переименовывались в вышестоящую ветку B
, которые я хотел включить. Я сделал слияние и решил некоторые незначительные конфликты. Я тогда и дальше сделал намного больше изменений и забыл совершить слияние. Затем, когда я запустил git status
, я понял, что все еще делаю слияние. Затем я зафиксировал все в одном коммите слияния.
* - A (this contains the merge and what should have been a separate commit on A)
|\
| * - B
| |
* |
|/
*
Теперь некоторые изменения произошли в апстриме, и куча файлов была перемещена. Я хочу иметь возможность получить изменения из коммита слияния и перенести ветку на новый B
.
Итак, я думаю, что первым делом нужно как-то получить изменения из коммита слияния, которые там не принадлежат:
* - A'
|
| * - B
| |
* |
|\|
| *
| |
* |
|/
*
Я даже не уверен, как сделать эту часть. Я не хочу редактировать коммит вручную. Я думал, что смогу повторить слияние с B на A, а затем каким-то образом переназначить коммит слияния на него, чтобы получить только дополнительные изменения, но я не смог заставить это работать.
Следующее, что нужно сделать, - это перейти на последнюю B
:
* - A'
|
*
|
*
\
* - B
|
*
/
*
Я уверен, что ответ уже есть, но я не уверен, что искать. Я пробовал кучу вещей, но я всегда заканчивал тем, что отсутствовал значительный фрагмент кода, который был в исходном коммите слияния.