Я создал ветку dev из основной ветки, а затем добавил несколько коммитов в ветку dev. Теперь я хочу перенести изменения из основной ветки в ветку разработки. Вот шаги, которые, по моему мнению, должны синхронизировать мою ветку разработки с основной веткой:
git checkout master
git pull origin master
git checkout dev
git merge master
Правильны ли вышеуказанные шаги или я делаю что-то неправильно? Пожалуйста, предложите.
Вы можете сделать все одной командой: stackoverflow.com/a/53859568/7976758git pull origin master:master
То, что вы делаете, работает, но наверняка происходит много напрасных движений.
Если вы используете 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
Мне особенно нравится этот способ высказывания вещей, потому что вы говорите то, что имеете в виду — обновите мою копию удаленного мастера и объедините ее с веткой, в которой я сейчас нахожусь.
Спасибо @matt. Что означает мастер:мастер в команде получения изменений от мастера?
См. git-scm.com/docs/git-fetch#Documentation/…
Я предполагаю, что это правильно. Когда вы это сделали, был ли результат таким, как вы ожидали?