We may earn an affiliate commission when you visit our partners.
Course image
Udemy logo

Git Mastery

Beginner to Expert with GitHub & GitLab

Mike Kilic

This course is all about Git and GitHub/GitLab/Azure Devops.

This course comprehensively covers not only Git but also possible Git hosting providers such as GitHub/GitLab or Azure DevOps, which means no prior knowledge or experience is required.

Read more

This course is all about Git and GitHub/GitLab/Azure Devops.

This course comprehensively covers not only Git but also possible Git hosting providers such as GitHub/GitLab or Azure DevOps, which means no prior knowledge or experience is required.

Starting from the very basics we will move to more intermediate topics (Branching, Merging, Rebasing, ...) and finally progress onto advanced topics such as Submodules, Subtrees, ect & dot repos and more.

If those terms are new to you - jump in and you will learn all that and more using multiple practice examples and animated slides.

Become a Git expert with proficiency in Repository/Team Management in GitHub/GitLab/Azure DevOps.

This is the most complete and comprehensive Git and GitHub/GitLab/Azure DevOps course, with tons of practical activities enchanted with animated slides for better understanding as well as a 30-page Cheat-Sheet. By the end of this course you will be the person to ask about Git. Everything will be taught from scratch, from the very basics to the advanced topics. If you truly want to master Git and GitHub/GitLab/Azure Devops this course is for you.

For those who are interested which commands will be covered in this course here is a list (without additional options that will be explored in the course):

git add · git bisect · git blame · git branch · git checkout · git cherry-pick · git clean · git clone · git commit · git config · git diff · git grep ·  git fetch · git gc · git gui · git init · git log · git ls-files · git merge · git merge-base · git merge-file ·  git mergetool · git mv · git pull · git push · git rebase · git reflog · git remote · git reset · git restore · git rev-list · git revert · git rm · git shortlog · git show · git stage · git status · git submodule · git subtree · git switch · git tag

This course is divided into 10 chapters, which will explore and go into detail on several core topics surrounding git. Below is a small summary for each chapter:

Chapter 1 focuses on clarifying the difference between Git and hosting services such as GitHub & GitLab.

Chapter 2 is a quick dive into Git and its most used commands. After this you will be comfortable with basic Git operations such as git add · git commit · git push · git pull · git status · git log · git cherry-pick · git checkout · and more. You will also know how to setup a .gitignore file and be able to create Branches and merge them. And finally we will cover Authentication methods such as (HTTPS vs SSH).

Chapter 3 focuses purely on Git. This is the longest chapter in the course for a good reason. Having finished this chapter you will be able to perform pretty much all actions there are to Git, such as Commits · Undoing Commits · Branches · Merging · Stashing · Remote Repositories · Merge-Conflicts · Rebasing · Tags · Commit References · Git Interna and more...

Chapter 4 will probably be most peoples' favourite as we won't be making changes to a Repository ourselves, but retrieve information of an already existing Repository. This will include extensive use of the following commands with various options of git log · git tag · git reflog · git show · git diff · git grep · git blame · git bisect · git shortlog. You will also learn how to visualize a Repository using Gitstats & gitk & GitKraken.

Chapter 5 is all about GitHub, the most known and used Git Hosting Service. After completing this chapter you will be able to manage and set up Personal Repositories as well as Organisations/Teams with ease. This includes managing Pull-Requests and also setting up recommended permissions and protecting branches. Furthermore you will also practice on how to link Issues and Pull-Requests together and also create and use Labels. For managing purposes we will set up automated Issue/Project Boards. Last but not least we will make use of GitHub Actions and create a GitHub Wiki + GitHub Pages and finally set up some security with Dependabot and CodeQL.

Chapter 6 is all about GitLab, probably the second most used Git Hosting Service. This Chapter covers the same topics as chapter 5 (GitHub) but for GitLab. This will include Merge Requests & Permissions (Personal + Groups) · Issues & Labels · Member permissions & roles · Forking · Project Boards & Milestones · Wiki & Code Snippets · CI/CD Pipeline Basics · GitLab Pages · Web IDE.

Chapter 7 focuses on two other known Git Hosting Services: Azure DevOps & Bitbucket. The topics in this chapter will be similar to what you've learned for GitHub & GitLab.

Chapter 8 covers Workflows. After this chapter you will be able to setup a necessary Workflow and decide which Workflow is suitable for your Repository/Project. The following Workflows are covered: Solo-Development · Feature Branches · Gitflow - Long Running Branches · Trunk-based Development.

Chapter 9 will handle advanced topics with various exercises. We will set up different Hooks (pre-commit, post-commit, commit-msg, pre-push) to enchant our Development and Workflow-Guidelines. Afterwards we will have a deep dive on how to properly write commit-messages, such as splitting it up into a subject + body and linking it with Issues & Merge/Pull-requests from GitHub & GitLab. Furthermore we will learn and practice Git Submodules & Subtrees, two very advanced Git topics. At the end we will make our lives easier by adding some Git Aliases and setup 2FA for GitHub.

Chapter 10 covers topics that are unknown to most Git users like how to manage your /etc directory with Git and how to setup a Dotfiles Repository. As some Repositories use binary files, we're going to practice and setup Git LFS (Large File Storage). At the end we will use Visual Studio Code and install the well known GitLens extension.

Chapter 11 contains the downloadable Cheat-Sheet.

Chapter 12 will contain lessons that will be added to the course from time to time to keep it up-to-date. Currently there's lessons about signed commits for GitHub.

You will not just use the terminal to perform Git operations. In parallel you will also learn to use GUI applications for various use cases:

  • GitHub Desktop

  • gitk

  • Visual Studio Code (+ GitLens)

  • GitKraken

  • TortoiseGit

  • Meld (For Merge-Conflicts)

  • Gitstats

  • Git GUI

Join now and you will get lifetime-long access to 30 hours of content packed with tons of practical exercises and a 30-page Cheat Sheet. After finishing this course you will be the person to ask about Git in your company and you will be able to perform advanced tasks with ease.

You also get a 30-day money-back guarantee. No questions asked.

Join now to become a true Git master.

Enroll now

What's inside

Learning objectives

  • Master key git concepts
  • Perform basic operations such as branching/merging/rebasing/cherry-picking
  • Learn how to solve merge-conflicts like a pro using various tools
  • Learn how to perform pull-requests (github) & merge-requests (gitlab)
  • Use advanced operations such as submodules / subtrees / hooks and more
  • Contribute to public repositories with works and creating pull requests of a forked repository
  • How to revert commits through various ways
  • Learn how to setup a protected branches with permissions in a repostiory on github + gitlab + azure devops + bitbucket
  • Work the right way with proven workflows

Syllabus

Introduction
Course Introduction
Course Overview
Chapter 1 Overview
Read more
What is Git?
"Git" and "git"
Different Git Interfaces
Git vs GitHub vs GitLab
Git quick dive & Authentication
Chapter 2 Overview
Installing Git in Linux
Installing Git in Windows
Choose our default Git Editor
Creating our GitHub Account
Crashcourse: Cloning our GitHub Repository
Crashcourse: git add & git commit
Crashcourse: git status
Crashcourse: .gitignore
Crashcourse: git push & git pull
Crashcourse: git log
Crashcourse: Push local repository to GitHub
Crashcourse: Branches
Authentication Overview
Authentication: Windows Credential Manager
Authentication: macOs Keychain
Authentication: SSH instead HTTPS
Authentication: Changing local repo to ssh
IDE & Editors: Overview
IDE & Editors: Emacs
IDE & Editors: Git Gui
IDE & Editors: GitHub Desktop
IDE & Editors: IntelliJ
IDE & Editors: TortoiseGit
IDE & Editors: VSCode GitLens
Git with Synchronization and Backups
Git Advanced Deep Dive
Chapter 3 Overview
Git Nomenclature & Recap 01
Git Nomenclature & Recap 02
Git Nomenclature & Recap 03
Git Nomenclature & Recap 04
Git Interna Introduction 01
Git Interna Introduction 02
Git Commits: Deep Dive
Git Commits: Interna
Git Commit: Move & Delete
Git Repository to Clone
Git Commits Undo: Repository Overview
Git Commits Undo: git reset & git restore
Git Commits Undo: git show & git diff
Git Commits Undo: git restore
Git Commits Undo: git revert
Git Commits Undo: git reset
Git Commits Undo: Changing commit message
Git Commits Undo: Summary 01
Git Commits Undo: Summary 02
Branches 01
Branches 02
Merging 01
Merging 02
Merging 03
Git Stash-Area (Stashing)
Remote Repositories Intro
Remote Repositories 02
Remote Repositories 03
Remote Repositories Interna
Merge Conflict Intro
Merge Conflict 02 (VSCode)
Download Repository
Merge Conflict 03: Merge-Tools (Meld)
Merge Conflict 04: Content Merge Conflic & Interna
Rebasing Intro
Rebasing 02: Hands On
Rebasing 03: Explained & Rebasing options
Rebasing 04: Squashing several commits
Tags Intro
Tags 02: Lightweight vs Annotated Tags
Tags 03: Deleting/Changing/Undoing Tags
Referencing Commits 01
Referencing Commits 02
Git Interna Final
Information Analysis in Git-Repository
Chapter 4 Overview
git log 01: Usefull options
git log 02: Usefull options PRACTICE
git log 03: --pretty Syntax
git log 04: --pretty PRACTICE
git log 05: --grep & --file & --author
git log 06: --grep & --file & --author PRACTICE
git log 07: Range Syntax
git log 08: --since/after & --until/before
Repository to clone
git log 09: Time-Range PRACTICE
git tag & git reflog 01
git tag & git reflog 02
git show & git diff 01
git show & git diff 02
git grep 01
git grep 02 (& git blame)
git bisect 01

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Provides foundational knowledge of Git, essential for software development
Covers advanced topics like submodules and subtrees, benefiting experienced learners
Includes practical exercises, animated slides, and a comprehensive cheat sheet, improving learning outcomes
Taught by an experienced instructor with a strong reputation in the field
Suitable for beginners and intermediate learners, providing a comprehensive learning path
Course completion grants a certificate, potentially enhancing credibility

Save this course

Save Git Mastery: Beginner to Expert with GitHub & GitLab to your list so you can find it easily later:
Save

Activities

Coming soon We're preparing activities for Git Mastery: Beginner to Expert with GitHub & GitLab. These are activities you can do either before, during, or after a course.

Career center

Learners who complete Git Mastery: Beginner to Expert with GitHub & GitLab will develop knowledge and skills that may be useful to these careers:
DevOps Engineer
DevOps Engineers work to bridge the gap between development and operations teams. They are responsible for ensuring that software applications are released quickly and reliably. As part of their job duties, DevOps Engineers often use Git to manage and version control their software projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Software Engineer
Software Engineers design, develop, and maintain software applications. They work in a variety of industries, including technology, finance, and healthcare. As part of their job duties, Software Engineers often use Git to manage and version control their software projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Machine Learning Engineer
Machine Learning Engineers develop and deploy machine learning models. They work in a variety of industries, including technology, finance, and healthcare. As part of their job duties, Machine Learning Engineers often use Git to manage and version control their machine learning projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Cloud Engineer
Cloud Engineers design, build, and maintain cloud computing systems. They work in a variety of industries, including technology, finance, and healthcare. As part of their job duties, Cloud Engineers often use Git to manage and version control their cloud computing projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Data Scientist
Data Scientists use data to solve business problems. They develop and apply statistical and machine learning models to data to identify trends and patterns. They then use this information to develop recommendations for improving business processes or products. As part of their job duties, Data Scientists often use Git to manage and version control their data science projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Technical Architect
Technical Architects design and oversee the implementation of IT systems. They work with business stakeholders to understand their needs and develop technical solutions that meet those needs. As part of their job duties, Technical Architects often use Git to manage and version control their architectural projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Network Engineer
Network Engineers design, build, and maintain computer networks. They ensure that networks are running smoothly and that data is secure. As part of their job duties, Network Engineers often use Git to manage and version control their network engineering projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Data Analyst
Data Analysts use data to help organizations make informed decisions. They collect, clean, and analyze data from a variety of sources to identify trends and patterns. They then use this information to develop recommendations for improving business processes or products. As part of their job duties, Data Analysts often use Git to manage and version control their data analysis projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Systems Administrator
Systems Administrators are responsible for maintaining and administering computer systems and networks. They ensure that systems are running smoothly and that data is secure. As part of their job duties, Systems Administrators often use Git to manage and version control their systems administration projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
IT Manager
IT Managers are responsible for overseeing the IT infrastructure of an organization. They plan, implement, and manage IT systems and services to ensure that they meet the needs of the organization. As part of their job duties, IT Managers often use Git to manage and version control their IT projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Security Engineer
Security Engineers design, implement, and maintain security systems to protect organizations from cyber attacks. As part of their job duties, Security Engineers often use Git to manage and version control their security projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Project Manager
Project Managers are responsible for planning, executing, and closing projects. They work with project teams to ensure that projects are delivered on time, within budget, and to the required quality. As part of their job duties, Project Managers often use Git to manage and version control their project management projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Product Manager
Product Managers are responsible for the development and management of products. They work with engineers, designers, and marketers to bring products to market. As part of their job duties, Product Managers often use Git to manage and version control their product development projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Technical Writer
Technical Writers create and maintain documentation for technical products and services. They work with engineers and product managers to ensure that documentation is accurate and easy to understand. As part of their job duties, Technical Writers often use Git to manage and version control their technical writing projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.
Sales Engineer
Sales Engineers work with customers to help them understand and purchase technical products and services. As part of their job duties, Sales Engineers often use Git to manage and version control their sales engineering projects. This course can help you develop the Git skills you need to be successful in this role, including how to use Git for branching, merging, and resolving conflicts.

Reading list

We've selected six books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in Git Mastery: Beginner to Expert with GitHub & GitLab.
Comprehensive guide to Git version control. It covers everything from the basics to advanced topics, and it great resource for anyone who wants to learn more about Git.
Provides a guide to using Git for teams, covering topics such as branching, merging, and collaboration.
Concise and easy-to-follow guide to Git. It great resource for beginners who want to learn the basics of Git quickly and easily.
Provides a comprehensive overview of the Git version control system, including its history, concepts, and usage.
Provides clear, practical explanations of core Git commands as well as more advanced Git techniques such as rebasing, cherry picking, and using Git hooks.
A practical guide geared towards software developers, providing a comprehensive overview of Git commands and workflows. Covers essential topics such as branching, merging, and resolving conflicts, making it a valuable resource for developers looking to enhance their Git skills.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Here are nine courses similar to Git Mastery: Beginner to Expert with GitHub & GitLab.
The Git and GitHub for Beginners
Most relevant
Version Control in node.js: Update Your App with GitHub
Most relevant
Git Training: Step-by-Step Guide to Git Version Control
Most relevant
Git for Beginners
Most relevant
Git Essentials: Mastering Version Control
Most relevant
The Ultimate Git Course - with Applications in Unreal...
Most relevant
Learn GIT In depth with BitBucket- Practical work flows
Most relevant
Git & GitHub Complete Masterclass : Beginner to Git Expert
Most relevant
Git & GitHub - The Practical Guide
Most relevant
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2024 OpenCourser