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:
- Know all the basic commands of git
- Understand the three most common git workflows and where they are most appropriate
Learner Requirements
Before starting this session you will need:
- GitHub account
- Install and complete Git it tutorial
Outline
An overview of the session should mirror slide deck
- Why source control
- Advantages to source control
- Disadvantages
- Intro to Git
- Why Git
- Branch / commit
- .git folder / .gitignore
- Pull requests
- Git Workflows
- Feature branching
- GitHub Flow
- GitFlow
- Group Task
Mandatory Tasks
To be completed as part of this training session:
- Group project on GitHub
- Add some relevant terms to your glossary
- Complete Learn Git Branching
- Complete Fracz Git Excersises
Additional Tasks
Supplement your learning and provide additional evidence by completing some of these extra tasks.
- Screencast of a pull request code review
- 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
- Slides: Intro Slides on Google Drive
- Blog post: Understanding Git — Explain it Like I’m Five
- GitHub Try Git
- PeepCode Git Internals PDF
- Intro to GitHub: Fork, Branch, Pull Request
- Think Like (a) Git. A series of introductory blogs, aimed at beginners.
- Everyday Git - The most common commands with examples
- Bitbucket - Why Git?
- Comparing Git Workflows
- Tutorial: Feature Branch Workflow
- GitHub Flow
- Git Flow Vs GitHub Flow
- 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.