Git принимает все изменения от Pull Request - PullRequest
0 голосов
/ 02 октября 2018

У меня есть проект, который мы только что переписали, который полностью изменил файловую структуру приложения и обновил многие его части.Меня больше не волнует, что находится в основной ветке;Я хочу, чтобы пиар, который я создал, заменил все в master на то, что в ветке version-2Я просто не уверен, какую команду использовать.

Я создал PR в GitHub, но он не может автоматически слиться для меня (очевидно), но запуск git merge dev в ветви версии 2 нетоже работает, потому что я не могу точно определить, отдает ли она приоритет изменениям версии 2 над чем-либо в dev.

Надеюсь, это имеет смысл ... какую команду git я ищу?Опять же, когда версия 2 сливается с master, я хочу, чтобы версия 2 перезаписывала master в любом потенциальном конфликте слияния.

Ответы [ 2 ]

0 голосов
/ 02 октября 2018

Вы можете создать «поддельное слияние», указав стратегию слияния ours, выделенную для вашего случая:

git checkout version-2
git merge -s our master -m "This is a brand new version 2"
git update-ref -m "Promote master to version-2" master refs/heads/version-2
git checkout master
git branch -D version-2 # if nobody needs version-2 anymore

Этот способ немного длиннее, чем переименование веток, но позволяет сохранить всю историювашего проекта.Все пользователи главной ветки получат основные изменения без каких-либо дополнительных усилий.

0 голосов
/ 02 октября 2018

Предполагая, что две ветви не делятся историей, они вам не нужны, чтобы делиться историей (например, для других пультов до pull из), и вы хотите рекламировать dev вместо master,самый простой подход - просто переименовать их:

git branch -m master old-version
git branch -m dev master

Обратите внимание, это не позволит существующему репо в другом месте git pull обновлять их master.Они могут, однако, git fetch, а затем get checkout -b master --track origin/master.

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