Я проверил местную ветку. Я совершил в ней кучку полных оч изменений. Только когда я собирался отправить их в удаленное репо, я понял, что работаю не в той ветке.
Мне нужно как бы "переместить" эти коммиты в другую ветку, как локально, так и удаленно, то есть:
У меня есть:
И мне нужно закончить с:
Я новичок в 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?
Мне помог друг, мы разобрались:
$(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
Очевидно, что числа намного длиннее и не по порядку, поскольку они являются контрольными суммами.
Это сработало для меня нормально, так как мне нужно было позаботиться о всего несколько коммитов. И они были последний коммит в последовательности.
Если были более поздние коммиты, которые не следует перемещать, или если было много коммитов, отвечать, о котором говорил Явар, кажется, стоит проверить.