Как заменить ветку в Git на другую ветку без слияния - PullRequest
0 голосов
/ 08 января 2019

Моя структура репо такая.

  • branch 'dev' - Создано из 'master' и является текущим.
  • филиал 'мастер' - нет коммитов за последние 2 года. Но немногие коммиты (нежелательные) опережают 'dev'.

Теперь мне нужно сделать основной код точно таким же, как и dev. Я предполагаю, что слияние приведет к тому, что нежелательные коммиты на «master» будут сохранены. Любая помощь?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Ответ Тима прекрасно работает, давайте просто добавим этот вариант для записи:

# from any branch
git branch -f master dev

И предупреждение о потере содержимого старой удаленной ветки такое же, резервная копия дешевая, поэтому, возможно, подумайте:

git branch backup_old_master master
git branch -f master dev

Тогда master будет указывать на точно такой же коммит (и историю), dev указывает на текущий момент, и у вас будет backup_old_master на всякий случай.

0 голосов
/ 08 января 2019

Вы можете сделать полный сброс master до текущей ветви dev:

# from master
git checkout master
git reset --hard dev

Но имейте в виду, что это может потенциально отбросить любые коммиты на master, которые были уникальны для этой ветви. Если вас это беспокоит, тогда подумайте о переходе от master в качестве меры предосторожности.

В следующий раз, когда вы нажмете master на пульте, вам, вероятно, придется нажать push:

git push --force origin master

Причиной принудительного толкания является то, что вы переписали основу ветви master, а Git не примет регулярный толчок.

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