Основано на @Sailesh и @DavidCulp:
(on branch development)
$ git fetch origin master
$ git merge FETCH_HEAD
(resolve any merge conflicts if there are any)
$ git checkout master
$ git merge --no-ff development (there won't be any conflicts now)
Первая команда убедится, что у вас есть все вышестоящие коммиты, сделанные удаленному мастеру, с ответом Sailesh, который не произойдет.
Второй будет выполнять слияние и создавать конфликты, которые вы затем сможете разрешить.
После этого вы можете наконец оформить заказ мастера, чтобы переключиться на мастер.
Затем вы объединяете ветку разработки с локальным мастером. Флаг no-ff создаст узел фиксации в master для отслеживания всего слияния.
После этого вы можете зафиксировать и нажать свое слияние.
Эта процедура позволит убедиться, что существует коммит слияния от разработки к мастеру, который могут видеть люди, а затем, если они пойдут посмотреть ветку разработки, они увидят отдельные коммиты, которые вы сделали с этой веткой во время ее разработки.
При желании вы можете изменить свой коммит слияния перед его отправкой, если вы хотите добавить сводку того, что было сделано в ветке разработки.
РЕДАКТИРОВАТЬ: мой оригинальный ответ предложил, git merge master
который ничего не делал, это лучше сделать git merge FETCH_HEAD
после получения оригинала / мастера
git pull -u
устанавливает отслеживание в восходящем направлении для ветви (или всех ветвей, если нажать более одной). Как только он установлен, отслеживание продолжается. Нет причин использовать его постоянно.