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

Git and GitHub Workflows

Git and GitHub Workflows

Streamlining your software development workflow is all about decisions. This presentation explores the many options related to version control software, team size, optimization, and command usage.

Allen Smith

April 08, 2015
Tweet

More Decks by Allen Smith

Other Decks in Programming

Transcript

  1. Git and GitHub Workflows Information to aid your VCS and

    branching decisions ! a discussion with Matthew McCullough & Allen Smith
  2. Git and GitHub Workflows GitHub Flow Git Flow Rebase It

    Squash It Linear Fast iterations Git Project Workflow Flow Types Aims Long-lived release branches Maintenance Commands rebase master merge --squash rebase -i commit —amend pull -r bisect Easy regression discovery Developer on boarding Continuous Integration Build all branches Version Control UI Handles rebased branches? Triggers UI updates on merges? Pull Requests Commit keywords: “fixes #22” revert Setting up jobs Push branch to production Chatops Deploying to branches Reverse merges merge master topic Deployments API GitHub Releases API Semantic versioning best practices Teams Solo 1-5 5-15 15-50 50-150 150+ reset --hard reset --soft rebase --autosquash -i GitHub Deployments API Centralized Decentralized ➊
  3. Git and GitHub Workflows GitHub Flow Git Flow Rebase It

    Squash It Linear Fast iterations Git Project Workflow Flow Types Aims Long-lived release branches Maintenance Commands rebase master merge --squash rebase -i commit —amend pull -r bisect Easy regression discovery Developer on boarding Continuous Integration Build all branches Version Control UI Handles rebased branches? Triggers UI updates on merges? Pull Requests Commit keywords: “fixes #22” revert Setting up jobs Push branch to production Chatops Deploying to branches Reverse merges merge master topic Deployments API GitHub Releases API Semantic versioning best practices Teams Solo 1-5 5-15 15-50 50-150 150+ reset --hard reset --soft rebase --autosquash -i GitHub Deployments API Centralized Decentralized ➊
  4. Time release branches master develop hotfixes feature branches Feature for

    future release Major feature for next release Severe bug fixed for production: hotfix 0.2 Tag 0.1 Tag 0.2 Incorporate bugfix in develop
  5. Tag 1.0 From this point on, “next release” means the

    release after 1.0 Bugfixes from rel. branch may be continuously merged back into develop Only bugfixes! 1.0
  6. $ git bisect start $ git bisect good $ git

    bisect bad $ git bisect run $ git bisect log ➍