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