Как отправить несколько локальных коммитов в локальной ветке A в удаленную ветку B и очистить их из локальной ветки A?

Я проверил местную ветку. Я совершил в ней кучку полных оч изменений. Только когда я собирался отправить их в удаленное репо, я понял, что работаю не в той ветке.

Мне нужно как бы "переместить" эти коммиты в другую ветку, как локально, так и удаленно, то есть:

У меня есть:

  • локальная ветвь A плюс изменения (зафиксированные, не отправленные),
  • местное отделение B без изменений,
  • в настоящее время проверил местную ветку A
  • удаленная ветвь A без изменений,
  • удаленная ветвь B без изменений

И мне нужно закончить с:

  • местное отделение А без изменений,
  • локальная ветвь B плюс изменения (отправленные),
  • удаленная ветвь A без изменений,
  • удаленная ветвь B плюс изменения.

Я новичок в git и не являюсь профессиональным разработчиком, поэтому git-push(1) не поможет мне без дополнительных исследований.

Я наткнулся на этот пост: Команда git push для отправки локальной фиксации в другую удаленную ветку

Он предлагает:

git push ssh://company.com:29418/platform/vendor/com-proprietary/ship/ftm 72bc75e409e50dcad29bd790b4b6478dc6668f12:jb_mr2

Очевидно, что jb_mr2-часть я меняю на то, как называется моя ветка B, но где взять остальные числа и каким образом избавиться от изменений на ветке A?


88
1

Ответ:

Решено

Мне помог друг, мы разобрались:

$(A) git log 
- 1236 more new files need to check 
- 1235 new files need to check 
- 1234 checked files ready for project 
$(A) git checkout B 
$(B) git cherry-pick 1235
$(B) git cherry-pick 1236 
$(B) git checkout A 
$(A) git reset --hard 1234 

Очевидно, что числа намного длиннее и не по порядку, поскольку они являются контрольными суммами.

Это сработало для меня нормально, так как мне нужно было позаботиться о всего несколько коммитов. И они были последний коммит в последовательности.

Если были более поздние коммиты, которые не следует перемещать, или если было много коммитов, отвечать, о котором говорил Явар, кажется, стоит проверить.