• We don't know what changes are on staging and live servers

  • Deployments are hard because of multiple changes from different devs

  • Lack of code review

Change logo

Change background colour

Apply patch

☹️

☹️

Branches

  • Master (Live)
  • Develop (Staging)

No Merging

git merge

git rebase / git cherry-pick

Features

Master

Develop

  • Manual deployments
  • Single branch
  • One commit per task
  • Auto deployments
  • One branch per task
  • Can have multiple commits per task
  • PR to push changes
  • Single access
  • Push changes directly
  • Multi access

Example

Master

Develop

PM

DEV

Can you change footer links colour?

Ok!

$ git checkout -b task/id01
$ git commit -m "Change footer links to red"
$ git rebase feat/id01 develop
$ git push
$ git clone git@bitbucket.org:medialounge_repo/repo.git

Master

Develop

PM

DEV

Changes up in mldemo!

Client no likey, please change to blue

Ok!

$ git commit -m "Change footer links to blue"
$ git rebase feat/id01 develop
$ git push

Master

Develop

PM

DEV

Links changed to red (ID01)

Links changed to blue (ID01)

Changes up in mldemo!

Client loves it, push live

Master

Develop

PM

DEV

$ git rebase -i HEAD~2
$ git push origin task/id01

GK

  • We don't know what changes are on staging and live servers

  • Deployments are hard because of multiple changes from different devs

  • Lack of code review

  • We don't know what changes are on staging and live servers

  • Deployments are hard because of multiple changes from different devs

  • Lack of code review

Pros

  • Devs only deploy their changes

  • Automated CI system

  • Time

  • Complexity

  • Develop branch can get messy

Cons

Branches

  • Identifying tasks
  • Local branch development
  • Code Review

Automatic

Manual

  • Identifying tasks

Automatic

  • Local branch development

Manual

New Dev Workflow

By Javier Villanueva

More from Javier Villanueva