git checkout develop # удостовериться что мы в нужной ветке
git merge --ff $(git commit-tree -p develop -p master -m "Reset develop to master" master^{tree})
master^{tree}
— это ссылка на текущее состояние файлов из ветки master.git commit-tree
— создаёт новый коммит, который:git commit-tree -p develop -p master -m "Reset develop to master" master^{tree}
— эта команда не просто создаст новый коммит, но ещё вернёт его хеш.git merge --ff $(...)
--ff
(fast-forward) говорит гиту просто передвинуть указатель develop вперёд на этот новый коммит, если это возможно без создания нового коммита слияния.$(...)
— это подстановка команды в bash, то есть git merge --ff
получит на вход хеш коммита из предыдущего шага.