Есть три варианта:
Во- первых — если вы хотите , чтобы уничтожить все следы истории master
вы можете просто установить master
на dev
git branch -f master dev
Если другие люди опираются на старое состояние, master
они облажались. Так что поговори с ними, прежде чем сделать это.
Второе — вы хотите сохранить историю мастера, но поменять содержимое: тогда вы делаете специальное слияние, подобное этому:
git checkout master # git merge -s theirs simulation git merge -s ours dev git branch temp_THEIRS git reset --hard dev git reset --soft temp_THEIRS git commit --amend git branch -D temp_THEIRS
Это сливается dev
в master
но принимает все содержимое из dev
— без каких — либо конфликтов — без вопросов. Это происходит от https://stackoverflow.com/a/56368650/947357 .
Третье — (согласно комментарию), если вы хотите выбросить master
(как в «Первом»), но также начать master
без какой-либо истории:
git checkout --orphan new-master git commit -m "start from scratch again" git branch --force -M new-master master
После этого dev
и master
не делиться историей.
Удалить все из мастер ветки