Git Fundamentals – Understand and Apply Version Control 

Course & Training

Get started with Git: From your first commits and branches to confident teamwork workflows with GitHub and GitLab.

Git is the backbone of modern software development and the standard tool for version control. Today, professional development is hardly possible without it. In this hands-on training, you’ll learn Git from the ground up – from your first commit to structured teamwork. You’ll practice the basics, master branching, merging, and rebasing, and understand how collaboration workflows on platforms like GitHub and GitLab work. This way, you’ll transform your development work into a secure, traceable, and collaborative process – on your own and with others.

In-House Course:

We are happy to conduct tailored courses for your team - on-site, remotely or in our course rooms.

Request In-House Course

   

Content:


Welcome to our practical Git training. This course is aimed at everyone who wants to finally use Git with confidence – whether for personal projects, open-source contributions, or professional teamwork.

Git is the standard for version control in modern software development. This training provides you with everything you need to safely use Git in your projects – from the basics to the most common collaboration workflows with GitHub and GitLab. Advanced topics are introduced as an outlook so you know what is possible.

Throughout the training, you will master the following topics:

– Git Fundamentals and Concepts:
... - What is version control and why Git?
... - Distributed vs. centralized version control
... - Git architecture and data model
... - Working Directory, Staging Area, and Repository

– Installation and Configuration:
... - Git installation on different operating systems
... - Initial configuration (user.name, user.email)
... - Global vs. local configuration
... - Git aliases for more efficient work

– Repository Management:
... - Initialize repository (git init)
... - Clone existing repositories (git clone, e.g. from GitHub or GitLab)
... - Understanding repository status (git status)
... - Creating and managing .gitignore files

– Basic Git Workflows:
... - Adding files to staging area (git add)
... - Creating and managing commits (git commit)
... - Commit messages: best practices and conventions
... - Undoing changes (git reset, git revert)

– History and Navigation:
... - Viewing commit history (git log)
... - Different log formats and filters
... - Comparing files and changes (git diff)
... - Blame and annotations for code analysis
... - Navigating between commits (git checkout vs. git switch)

– Branching and Merging:
... - Branch concepts and strategies
... - Creating and switching branches (git branch, git checkout/git switch)
... - Merge strategies (Fast-Forward, Three-Way-Merge)
... - Understanding and resolving merge conflicts
... - Branch management and cleanup

– Rebasing and History Manipulation:
... - Interactive rebase for clean history
... - Squashing and splitting commits
... - Modifying commit messages retroactively
... - Cherry-picking for selective changes

– Remote Repositories:
... - Remote concepts and configuration
... - Push and pull operations (git push, git pull)
... - Understanding fetch vs. pull
... - Upstream branches and tracking
... - Managing multiple remotes

– Collaboration and Workflows:
... - GitHub Flow, Git Flow, and GitLab Flow compared
... - Feature branch workflow in teams
... - Using pull requests and merge requests
... - Code reviews and best practices for collaboration
... - Conflict resolution in teams

– Advanced Git Techniques (Outlook):
... - Git stash for temporary changes
... - Git tags for releases
... - Git hooks for automation
... - Submodules for project dependencies
... - Git worktrees for parallel development

– Troubleshooting and Recovery:
... - Common Git problems and solutions
... - Recovering lost commits (git reflog)
... - Repository repair and optimization
... - Backup strategies for Git repositories

– Git Tools and Integration:
... - GUI tools vs. command line (e.g. GitHub Desktop, Sourcetree)
... - IDE integration (VS Code, IntelliJ, etc.)
... - Git extensions and plugins
... - Continuous integration with Git and CI/CD pipelines

– Best Practices and Workflows:
... - Commit strategies for different project types
... - Branch naming conventions
... - Release management with Git
... - Security aspects of Git usage

This course combines short inputs with many exercises in real Git repositories and prepares you to use Git confidently in everyday work and teamwork workflows.


Disclaimer: The actual course content may vary from the above, depending on the trainer, implementation, duration and constellation of participants.

Whether we call it training, course, workshop or seminar, we want to pick up participants at their point and equip them with the necessary practical knowledge so that they can apply the technology directly after the training and deepen it independently.

Goal:

After the course, participants can use Git confidently in everyday work. They master the most important commands, understand branches, commits, and remotes, and can work safely on their own as well as in teams using platforms like GitHub and GitLab.


Form:

A mix of short explanations, live coding, and plenty of practical exercises with real Git repositories. Everyday scenarios and collaboration with platforms like GitHub and GitLab are the focus so that participants gain confidence in daily Git usage.


Target Audience:

Software developers, students, career changers, and anyone who wants to work with Git for the first time or solidify their existing Git knowledge. Ideal for beginners, open-source contributors, and developers with initial experience.


Requirements:

Basic understanding of command-line tools and some experience in software development. No prior Git knowledge required – we start with the fundamentals.


Preparation:

Each participant receives a questionnaire and installation instructions after registration. We ensure that everyone starts with a working Git environment and provide prepared example repositories for the exercises.

Request In-House Course:

In-House Kurs Anfragen

Waitinglist for public course:

Sign up for the waiting list for more public course dates. Once we have enough people on the waiting list, we will determine a date that suits everyone as much as possible and schedule a new session. If you want to participate directly with two colleagues, we can even plan a public course specifically for you.

Waiting List Request

(If you already have 3 or more participants, we will discuss your preferred date directly with you and announce the course.)

More about Git



Git is a distributed version control system developed by Linus Torvalds in 2005. It has become the standard for version control in modern software development and is used by millions of developers worldwide.




History and Development


Linus Torvalds originally developed Git in 2005 for managing the Linux kernel source code. The tool emerged from the need to create a distributed version control system that could meet the requirements of large, distributed development teams.


Git revolutionized software development through its distributed model, allowing every developer to have a complete copy of the project history. This enabled new workflows and collaboration patterns that were not possible with centralized systems like SVN.


Today, Git is the foundation for platforms like GitHub , GitLab , and Bitbucket , which have further revolutionized collaboration in software development. Git also forms the basis for modern practices such as Continuous Integration, DevOps, Pull Requests, Code Reviews, and Infrastructure as Code.