Насколько я понял из вашего рабочего процесса разработки, вы работаете с рабочим процессом gitflow. В этом рабочем процессе основными ветвями являются:
- master - самая стабильная основная ветвь
- development - ветвь разработки для разработки и объединения там функций (изначально созданных из master)
- ветви функций - каждый раз, когда вы хотите разработать новую функцию, вы должны создать новую ветку функции из последней разработки
- исправление - для исправлений на главном сервере (если выпуск не работает)
- release - создается от разработки до pu sh (выпуск) изменяется на master
Если вы работали над разработкой, а не над ветвями компонентов, то сначала нужно объединить разработку с master, а затем следовать рабочий процесс. Чтобы ответить на ваш вопрос: лучше использовать первый вариант:
git checkout master
git merge dev //to merge dev into master
А затем pu sh для удаленного мастера.
Чтобы сделать github счастливым (если вы используете github), вы должны объединить мастер обратно в разработку (чтобы он не расходился и не жаловался).