Удалить все из мастер ветки - PullRequest
0 голосов
/ 30 мая 2019

У меня две ветви - развивайся и осваивай. Я постоянно работал над веткой dev, а мастер - совершенно ненужный код, совсем другой, чем на ветке dev.

как перенести все из dev в master таким образом, чтобы от старого мастера ничего не осталось?

Ответы [ 3 ]

2 голосов
/ 30 мая 2019

Вы можете удалить основную ветку. А затем создайте нового мастера из ветви dev.

Вот как вы можете добиться этого:

git checkout develop
git branch -D master
git checkout -b master

Если вы хотите перенести вашу новую главную ветвь на удаленный, то вы можете использовать опцию принудительного нажатия, она перезапишет старый главный с удаленного.

git push origin -f master
2 голосов
/ 30 мая 2019

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

Сначала - если вы хотите уничтожить все следы истории master, вы можете просто установить master на dev - аналогично ответам @Krantisinh и @ashishmohite:

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 не делятся историей.

0 голосов
/ 30 мая 2019

Вы можете удалить основную ветку, если она не заблокирована, и затем извлечь основную ветку из разработки

git checkout dev
git branch -D master
git checkout -b master
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...