git rebase master приводит к генеральным коммитам поверх веток коммитов - PullRequest
0 голосов
/ 18 октября 2019

Я работаю в филиале, который недавно был разветвлен. С тех пор в мастер было добавлено несколько функций, которые я бы хотел использовать в своей ветке. В прошлом я использовал git rebase master, чтобы перестроить мою ветку путем воспроизведения коммитов в моей ветке поверх мастера. Однако в настоящее время это не работает должным образом.

Вот что я делаю

my-branch shows 63 commits ahead, 10 commits behind master - on github
git checkout master
git pull
git checkout my-branch
git rebase master my-branch

Во время перебазирования я сталкиваюсь только с одним конфликтом слияния, который легко исправить. После завершения ребазирования я замечаю, что некоторые файлы отражают то, что находится в master, а не my-branch. По жизни я не могу понять, что я делаю неправильно. Это связано с тем, что ветка находится впереди и позади хозяина? Это кажется довольно распространенной ситуацией, поэтому я не чувствую, что это нарушит рабочий процесс rebase.

Я также попытался выполнить git merge, что приводит к точно тому же конечному состоянию для my-branch.

- Правка 18.10.19 -

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

Оказывается, изменения в моей ветке были объединены в master несколько месяцев назад. После этого еще одна ветвь, в которой отсутствовали эти изменения, была объединена с главной, что фактически удаляло изменения. Это означает, что фиксация, в которой находятся эти изменения, отсутствует в списке фиксации для ребазинга. Я думал, что видел коммит в списке, но проблема была в том, что это было очень общее сообщение, которое я просто пропустил. Поскольку эта проблема, похоже, не связана с git или с тем, как я использовал rebase, я собираюсь принять текущий ответ и оставить его здесь для дальнейшего использования.

1 Ответ

0 голосов
/ 18 октября 2019

Если ваша ветвь была запущена с мастера, то вы должны выполнить следующее (после проверки вашей ветки, как вы делаете в инструкциях):

git rebase master
...