Git перемещает мою работу из определенного коммита в отдельную ветку без изменений из текущего родителя

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

Я создал ветку из ветки разработки и поработал, добавил несколько коммитов и нажал. Итак, это так:

develop ---- feature1

Тогда я случайно сделал:

develop---feature1----feature2

Но мне нужно было сделать следующее:

develop----feature1
   \
    \--feature2

К сожалению, я уже отправил запрос на перенос, прежде чем понял это.

Теперь feature1 не был объединен с разработкой. Мне нужно полностью убрать feature2 из feature1 и вернуть ее для разработки.

Надеюсь, это понятно. Кроме того, я заранее прошу прощения, потому что я уверен, что об этом уже задавали раньше, но я не нашел вопрос, который помог бы мне.

Любая помощь будет оценена по достоинству.


1
46
1

Ответ:

Вы можете использовать git rebase -i и отбросить коммиты, которые находятся в ветке feature1.

Например:

В функции 1 есть коммиты A и B, а в функции 2 - коммиты A, B, C, and D. В вашем случае вы хотите удалить A и B из функции 2.

Пожалуйста, следуйте инструкциям ниже:

  • git rebase -i HEAD~X X - количество коммитов в ветке feature2.
  • Теперь он откроет редактор со списком коммитов с pick в качестве первого слова.
  • Чтобы отказаться от фиксации, перейдите к соответствующей фиксации и удалите слово pick и замените его буквой d. d означает удаление фиксации. Пожалуйста, обратитесь к изображению ниже
  • Сохраните и выйдите из редактора. Git удалит фиксацию
  • git push -f origin feature2 - У вас есть принудительное нажатие на ветку.

Надеюсь это поможет.