Back to top

Versioning code with Git

Duration: 1 day | Price: € 299,00

📣 20% discount for multiple people from the same company.


Knowledge of the command line of MS Windows


Git is a DVCS (Distributed Version Control System) developed by Linus Torvalds, the creator of the Linux kernel. In this course we will analyze the strategies, techniques and technologies to adopt to control the versioning of sources using Git. We will analyze all the necessary commands for the development of a project in team, all the procedures for managing repositories and all the tools to monitor the progress of the different branches that compose it.

During the course we will use both the Git CLI and different graphical clients. All the exercises will be mainly exposed on the Git CLI. Where possible, a specific Git GUI will also be used to accomplish the same tasks. The goal is to help the learner become familiar with the Git CLI in a way that does not depend on a specific GUI. The concepts learned in this way will always be reusable regardless of the client you use in your day-to-day activities.


Introduction to Git
  • What is a DVCS - differences with a classic VCS
  • Git and Distributed Version Control
  • Installing and Configuring Git
  • GUI for Git: an overview
Managing Repositories
  • Creating a Git Repository
  • File Status and Editing Repositories
  • Understanding and Using Staging
  • Working with Files in Git
  • Undoing and Changing History in Git
  • The Detached Head
  • Managing Remote Repositories
  • Creating and Using Tags, Annotated Tags and Aliases
  • Managing Remotes
  • Practical examples for remote management
  • What is a branch
  • Why and how to create a branch
  • Branching and Merging in Git
  • Analyzing Branches and Merges
  • What is Rebasing and how to use it
  • Practical examples of parallel development
  • What is a Stash
  • When is it necessary to use a stash?
  • Practical application of stash
  • Why use a workflow?
  • How to understand which workflow to use
  • Centralized Workflow
  • Feature Branch Workflow
  • Gitflow Workflow
  • Forking Workflow
  • Analyze the pros and cons of each workflow
  • The best workflow for your team
How to manage shared code across multiple projects
  • Submodule vs Subtree
  • Retrieve subtree updates
  • Send your changes to the subtree
  • Practical use of subtree
Archiving and Mirroring
  • Creating Reusable Bundles
  • Creating Archives
  • Implement mirroring

The course is structured with an alternation of theory and practice in order to allow learners to understand, acquire and deal with new information and techniques from the beginning.

Request information