Как вы перебазировать изменения текущей ветви на вершине изменений в?
ОК. Если я на ветке (скажи working), и я хочу объединить изменения из другой ветви (скажем master), затем я запускаю команду git-merge master на working ветвь, и изменения объединяются без перезагрузки истории вообще. Если я побегу git-rebase master, затем в master rebased быть положенным на верхнюю часть моего working филиала. Но что, если я хочу слиться с изменениями из master но перебазировать свои изменения в working быть сверху? Как мне это сделать? Это может быть сделано?
я мог бы бежать git-rebase working на master ветка, чтобы поместить мои изменения сверху в master ветка, но я хотел бы иметь возможность сделать это в моем working филиала, и я понятия не имею как. Самое близкое, что я могу придумать, это создать новую ветку из master и затем rebase workingизменения поверх этого, но тогда у меня была бы новая ветвь вместо изменения working филиала.
3 ответов
у вас есть что rebase совсем наоборот. git rebase master делает то, что вы просите - принимает изменения в текущей ветви (начиная с ее расхождения с master) и воспроизводит их поверх master, затем устанавливает главу текущей ветви в качестве главы этой новой истории. Это не воспроизвести изменения из master на текущей ветви.
еще один способ взглянуть на это рассмотреть git rebase master as:
перебазировать текущую ветку на
master
здесьmaster - это вверх ветка, и это объясняет, почему во время ребаза,ours и theirs сторнируются.
Я только сделал это несколько минут назад следующим образом:
- резервное копирование текущей работы
git checkout -b work-in-progress - fetch последние изменения
git fetch origin/master - отменить любые локальные изменения
git reset --hard origin/master - replay последние изменения от master
git rebase origin/master - воспроизведение вашей работы в процессе
git rebase origin/work-in-progress - синхронизируйте свою работу с последним master
git rebase origin/master