Как вы перебазировать изменения текущей ветви на вершине изменений в?
ОК. Если я на ветке (скажи 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