Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Get Good with Git

Luke Stringer
December 06, 2018

Get Good with Git

Using Version Control to Deliver Quality Software.

A look into how 3Squared use version control to enable collaboration, ensure code quality, fix bugs, and ultimately release software.

Delivered at The University of Sheffield as part of the Institute of Coding talks

Luke Stringer

December 06, 2018
Tweet

More Decks by Luke Stringer

Other Decks in Technology

Transcript

  1. Version control is a system that records changes to a

    file or set of files over time so that you can recall specific versions later.
  2. I'm an egotistical bastard, and I name all my projects

    after myself. First 'Linux', now 'git'. - Linus Torvalds
  3. Bad

  4. The Main Branches • master represents code in a production

    ready state. • Each commit on master is tagged with a release number • develop represents code for the next release.
  5. Feature Branches • Developing features for the next release. •

    Branch from: develop • Merge into: develop • Named: feature/_, e.g. feature/login • Multiple features can be worked on in parallel by the team.
  6. Release Branches • Prepare for production when all features are

    complete. • Branch from: develop • Merge into: develop & master • Named: release/_, e.g. release/1.0.1 • Only one release at a time. • Merge with master is tagged with the release number.
  7. Hotfix Branches • Used to quickly react to critical bugs

    in production. • Branch from: master • Merge into: develop & master • Named: hotfix/_, e.g. release/1.2.1 • Other team member can carry on with feature work.
  8. Summary • Git is enables fast, flexible collaborative software development

    • Bug-fixing is made easier with git bisect • With Great Power comes Great Responsibility • Following a branching policy like Git-Flow standardises development & deployment processes !"#$%&✈⚡ ()* +✏ -.⚠ 0 1 2 3 4 6 7 9