Рабочий процесс синхронизации ветки разработки с мастером

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

git checkout master
git pull origin master
git checkout dev
git merge master

Правильны ли вышеуказанные шаги или я делаю что-то неправильно? Пожалуйста, предложите.


52
1

Ответ:

Решено

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

Если вы используете dev, нет необходимости переключаться обратно на master, просто чтобы обновить master (а затем снова переключаться на dev, чтобы слиться с ним). В вашей ситуации было бы достаточно сказать (на dev):

git fetch origin master:master
git merge master

Но я бы пошел еще дальше. Если, как это обычно бывает, единственная цель главной ветки — предоставить вам и вашим коллегам место для слияния с помощью PR на удаленном конце, тогда вам не нужен локальный главный филиал на удаленном конце. все. Удалите его:

git branch -D master

Теперь ваш процесс обновления dev будет выглядеть так:

git fetch
git merge origin/master

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


Интересные вопросы для изучения

При отправке тегов в Azure Devops с помощью команд Powershell не задается информация о тегахНасколько большим может быть репозиторий git в Azure DevOps?Повлияет ли удаление определенных коммитов из ветки на исходную ветку, из которой они были созданы?Почему происходит сбой второго рабочего процесса действий Github (вызываемого через «workflow_call»)?Проблема с Git при переименовании каталогаНесоответствия различий GitHub при сравнении ветки с фиксацией слияния и другой, отменяющей слияниеКак полностью переопределить одну ветку git на другуюКонвейер Azure Devops с дополнительным этапом, запускаемым вручнуюКак запретить принудительную отправку только на главную, но при этом разрешить прямую (не принудительную) отправку в репозиториях git Azure DevOpsКак проверить, является ли данный аргумент синтаксически допустимым коммитом или синтаксически допустимым диапазоном изменений?