Как организовать работу в git?
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
А тимлид уже на битбакете мерджит dev в master