Переместить изменения из подотрасли в новую ветку от dev

#git #git-branch

#мерзавец #git-ветвь

Вопрос:

У меня была ветка ( b) от dev ( a ), которую я ожидал объединения. Тем временем я локально разветвился c b и внес некоторые изменения. Я еще не давил.

Теперь ветка b была объединена в dev a и b удалена с пульта дистанционного управления. Как я могу перенести свои локальные изменения c в новую ветку a , чтобы сразу же перенести изменения в новую ветку a ?

ИМЕТЬ

 |
|
|    |
|    |
|  | /
|  |/
| /
|/
|
a  b  c
 

ХОЧУ

 |
|  |
|  |
| /
|/
a  d
 

Комментарии:

1. Вы можете создать ветку d из a , а затем выбрать вишню ( git-scm.com/docs/git-cherry-pick ) каждый коммит , сделанный c в.

Ответ №1:

Как прокомментировал @odradek, я использовал cherry-pick :

Во-первых, используйте git log while на ветке c:

Скопируйте хэш коммита, который мне нужен для выбора вишни, и выйдите, нажав q

 git checkout a
git checkout -b d
git cherry-pick {your hash}
 

Устраняйте любые конфликты, фиксируйте и продвигайте.