У меня есть две ветки, master и feature1. Я работал над feature1, когда понял, что мне нужно поработать над чем-то другим, не имеющим отношения к делу. К сожалению, я забыл ветку от мастера, а вместо этого создал ветку feature2 от feature1. Теперь я хочу слить feature2 в master, но не могу, потому что в этой ветке есть части feature1.
Как удалить коммиты feature1 из ветви feature2? Включает ли это перебазирование?
Мне кажется, что если бы я мог изменить исходный ориентир feature2 на то, где находится ведущая функция, это могло бы помочь, но я понятия не имею, как это сделать.
EDIT:
Спасибо за ответы! Я попытался сделать ребазинг в соответствии с решением @Mark, но понял, что история сложнее, чем я думал изначально. Функция 2 была слита с другими ветвями функции, а мастер в какой-то момент был слит с функцией2. Также есть дополнительные коммиты на master, которые не связаны с feature2 Все осталось локальным.
На самом деле, моя история больше похожа на эту:
A - B - C - D - - - - - - - - - - - - - L - M master
|
| - I - J - K feature2
\ / \
- E - F - G - H - - - - - -N - O - P feature1
И вот что я хочу:
A - B - C - D - - - - - - - - - - L - M master
|\
| - - - - - I - J - K feature2
\ \
- E - F - G - H - - - N - O - P feature1
Я тоже пытался:
git rebase --onto 1524b824cfce5856a49e feature1 feature2
// 1524b824cfce5856a49e == D
Но это просто устанавливает, что имя ветви feature 2 указывает на 1524, и оставляет коммиты I, J, K с их первоначальными родителями.