Как сделать ветку-сироту мастером? - PullRequest
0 голосов
/ 13 июля 2020

Изначально у меня было две ветки.

-->A-->B-->C [master]<-Head
             [v1]

Итак, здесь master и v1 находятся в одном месте, а мастер - head.

Теперь я создал сиротское отделение v2. У него совершенно другая кодовая база, одно и то же приложение в новом стеке говорит, что более старое на реакции, а затем на vue.

-->A-->B-->C [master]<-Head
             [v1]

-->X-->Y-->Z[v2]

Теперь я хочу сделать v2 основной веткой, так как я всегда считаю производство должен быть хозяином, так что в итоге я хочу.

-->A-->B-->C [v1]<-Head

-->X-->Y-->Z [master]<-Head 
             [v2]

Ответы [ 2 ]

2 голосов
/ 13 июля 2020

Предупреждение: Это удалит все на главном сервере, что еще не было зафиксировано в v1. Вы можете сначала зафиксировать или создать резервную копию некоторых файлов.

git checkout master
git reset --hard v2

Также вам действительно не нужны дублирующиеся ветки, а теги работают нормально для версий, поэтому я бы рекомендовал сначала очистить ваши ветки:

git checkout v1
git tag v1
git checkout master
git branch -d v1
git branch -d v2
1 голос
/ 13 июля 2020

Предупреждение: git reset --hard ... отбрасывает все незафиксированные изменения (как поэтапные, так и неустановленные).

Предупреждение 2: хотя вы просто перемещаете ветку и не изменяете никаких коммитов, это равносильно перезаписи истории master (фактически, полностью заменяя историю master на другую). Если вы принудительно отправите результат sh в общий или опубликованный c репо, в котором уже была история предыдущей основной ветки, обычные предостережения о перезаписи истории подать заявление. См. Также Каковы практические последствия перезаписи Git истории?

git checkout master
git reset --hard v2

или

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