Choose language: ENGLISH | RUSSIAN (Русский)

Удалить все из мастер ветки

Есть три варианта: 

Во- первых — если вы хотите , чтобы уничтожить все следы истории 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не делиться историей.

Удалить все из мастер ветки