First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

GIT for Users

Duration: 1 Day

Intended Audience

This course is designed for those who will be using a Git repository as part of their day to day work. This includes software and web developers, project managers, software architects and solutions architects, release managers, as well as those involved in publishing of documents.

Prerequisites

Familiarity with project development concepts and tasks.

Course Overview

At the end of this course students will have an understanding of basic Git concepts and be able to use Git. The course will provide answers to such question as
  • What is a Version Control System (VCS)?
  • Distributed vs Non-distributed VCS
  • What is Git and where did it come from?
  • Alternatives to Git
  • Overview of Cloud-based solutions (Github, Gitlab, BitBucket etc)

Detailed Course Outline

  • Introduction to Version Control Systems (VCS) and GIT
  • Installation and Configuration of GIT - an Overvew
    • Obtaining Git and Installing Git
    • Common configuration options
    • GUI tools e.g. Tortoise Git
  • Key Concepts and Terminology
    • Clone
    • Working Tree
    • Checkout
    • Staging area
    • Add
    • Commit
    • Push
    • Pull
    • Stash
  • Git - Local Repository Actions
    • Creating a repository (git init)
    • Checking status (git status)
    • Adding files to a repository (git add)
    • Committing files (git commit)
    • Removing staged files (git reset)
    • Removing committed files (git rm)
    • Checking logs (git log)
  • Git - Remote Repository Actions
    • Creating a remote repository (git init)
    • Cloning repositories (git clone)
    • Updating the remote repository from the local (git push)
    • Updating the local repository from the remote (git pull)
  • Git Tagging
    • The concept of Git tag
    • Listing tags
    • Lightweight tags
    • Obtaining tag details (tag show)
    • Annotated tags
    • Checking out tags
    • Pushing tags
    • Pulling tags
  • Git Branching
    • The concept of a Branch
    • The <HEAD> Branch
    • Listing branches
    • Creating a new branch
    • Checking out a branch
    • Pushing branches
    • Pulling branches
  • Merging in Git - overview
    • Fetching Changes (git fetch)
    • Rebasing (git rebase)
    • Git Pull
  • Git Workflows - Overview of Different Git use Cases
    • Centralised
    • Feature Branch
    • Gitflow Workflow
    • Forking Workflow
  • Git - Change Stashing
    • The concept of Stashing and its uses
    • Creating a branch from a Stash