Я работаю в филиале, который недавно был разветвлен. С тех пор в мастер было добавлено несколько функций, которые я бы хотел использовать в своей ветке. В прошлом я использовал 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, я собираюсь принять текущий ответ и оставить его здесь для дальнейшего использования.