Source control

Last reviewed 04 April by Crispin Read

Description

In this session we'll learn more about change management and version control using git. In particular we'll be looking at some of the more common workflows that sit alongside source control.

Why this is important

Source control makes it possible for multiple developers work on the same code at the same time. Workflows enable us to communicate better and can install additional process into our work to make sure we are solving the problems at hand while producing the best code possible.

Outcomes

At the end of this training you will be able to:

  1. Know all the basic commands of git
  2. Understand the three most common git workflows and where they are most appropriate

Learner Requirements

Before starting this session you will need:

  1. GitHub account
  2. Install and complete Git it tutorial

Outline

An overview of the session should mirror slide deck

  1. Why source control
  2. Advantages to source control
  3. Disadvantages
  4. Intro to Git
    • Why Git
    • Branch / commit
    • .git folder / .gitignore
    • Pull requests
  5. Git Workflows
    • Feature branching
    • GitHub Flow
    • GitFlow
  6. Group Task

Mandatory Tasks

To be completed as part of this training session:

  1. Group project on GitHub
  2. Add some relevant terms to your glossary
  3. Complete Learn Git Branching
  4. Complete Fracz Git Excersises

Additional Tasks

Supplement your learning and provide additional evidence by completing some of these extra tasks.

  1. Screencast of a pull request code review
  2. Create a git cheat sheet

Blog Post Ideas

  • Key takeouts from group task
  • Compare git tutorials and learning aids
  • Compare git workflows
  • Starting out with git

Resources / Reference

  1. Slides: Intro Slides on Google Drive
  2. Blog post: Understanding Git — Explain it Like I’m Five
  3. GitHub Try Git
  4. PeepCode Git Internals PDF
  5. Intro to GitHub: Fork, Branch, Pull Request
  6. Think Like (a) Git. A series of introductory blogs, aimed at beginners.
  7. Everyday Git - The most common commands with examples
  8. Bitbucket - Why Git?
  9. Comparing Git Workflows
  10. Tutorial: Feature Branch Workflow
  11. GitHub Flow
  12. Git Flow Vs GitHub Flow
  13. 10 great tutorials for learning Git

Skills, Knowledge, Behaviours and Values

Technical Skills

This workshop is designed to develop the following technical skills:

  • JavaScript
  • php
  • Git

Core Skills

This workshop is designed to develop the following from our core skills directive

  • Communication
  • Teamwork
  • Empathy

Apprenticeship Standard

This workshop will encourage the development of the following from the Software Developer Level 4 Standard

COMPETENCIES (Skills)

  • C8 - Deployment: can understand and utilise skills to build, manage and deploy code into enterprise environments.
  • C9 - Development lifecycle: can operate at all stages of the software development lifecycle, with increasing breadth and depth over time with initial focus on build and test.
  • C11 - Can interpret and follow:
    • software designs and functional/technical specifications
    • company defined ‘coding standards’ or industry good practice for coding
    • testing frameworks and methodologies
    • company, team or client approaches to continuous integration, version and source control
  • C12 - Can respond to the business environment and business issues related to software development.
  • C13 - Can operate effectively in their own business’, their customers’ and the industry's environments.

BEHAVIOURS

  • B1 - Logical and creative thinking skills.
  • B2 - Analytical and problem-solving skills.

Knowledge

  • K3 - Understands how teams work effectively to produce software and contributes appropriately.
  • K5 - Understands and responds to the business environment and business issues related to software development.