git checkout -b feature/new_layout # создаем свою ветку для фичи / бага / рефакторинга и тд и тп
{ do your work here, commit and etc }
git checkout master
git pull # качаем к себе актуальное состояние мастера
git rebase master feature/new_layout # сдвигаем свою ветку на актуальный мастер (если добавить флаг -i то можно немного подредактировать историю изменений)
git checkout master
git merge --no-ff feature/new_layout # мержим в мастер вашу готовую фичу без фаст форварда
git push
git branch -d feature/new_layout # удаляем ветку, она нам больше не нужна
git checkout dev
git pull
git checkout -b feature
# работаем в ветке, периодически вливая в нее свежее если надо
git add -A && git commit -a
# перед пушем сливаем в ветку свежий dev и решаем конфликты, если есть, локально
git pull origin dev
git push origin feature
git branch -d feature