We may earn an affiliate commission when you visit our partners.
Course image
Academind by Maximilian Schwarzmüller, Maximilian Schwarzmüller, and Manuel Lorenz

No matter if you're just getting started with (web) development, if you're applying for a developer job or if you just need to refresh your knowledge - version control is a core skill you need to succeed as a developer.

Read more

No matter if you're just getting started with (web) development, if you're applying for a developer job or if you just need to refresh your knowledge - version control is a core skill you need to succeed as a developer.

Git (a version control system) and Github (a cloud provider for Git managed projects) form an outstanding combination to provide the best possible experience to create and maintain a clearly structured project history.

This course guides everyone (no prior knowledge is required. ) through the core steps to use these tools in your daily projects with ease.

What is Version Control?

Saving & accessing data and tracking changes is what version control is all about. No matter if you're working on a private or a professional development project, code evolves, changes and continuously gets improved. A clean version management structure is therefore key to successfully manage the progress of your projects.

What is Git?

Git is a 100% free version management tool, specifically created for and used by developers all over the world to manage project code history locally on their machines (Windows, macOS, Linux/Unix).

What is GitHub?

GitHub is an online service, it is also free for many use cases (an account is all you need) and brings Git's local "file-tracking" strengths to the cloud. Storing project code online, updating code, accessing other team members' code or collaborating on large scale projects inside your organization - all possible with the help of GitHub.

Why Should I Know these Tools?

Version control is key to manage projects efficiently so not knowing Git and GitHub makes your daily developer life a lot more complicated. The same apply if you're currently looking for a new job in the industry, version control is required in any developer projects these days, so not knowing Git & GitHub puts you behind your competition.

Although Git and GitHub are user friendly, both come with their own logic and "language". Getting started can therefore be a bit cumbersome and this is where this course comes into play.

What do I Learn in this Course?

This course starts at the very basics, no prior Git or GitHub knowledge is required. You'll learn how to use Git and how to write Git commands in the Mac Terminal or the Windows Command Prompt (optional refreshers on both are also part of the course).

Starting with the first initialization of a so-called Git repository, we'll build up your knowledge step-by-step and understand the what & why behind concepts like branches, commits, the staging area, merging & rebasing, cloning, pushing & pulling branches and a lot more.

What's Inside this Course?

  • An optional Command Line Crash Course for both Windows & MacOS users

  • Git Download & Installation

  • Git Theory - Working Directory, Staging Area (Index) and Repository explained

  • Creating Git Repositories

  • Working with Commits

  • Understanding Branches

  • Understanding the HEAD and the detached HEAD

  • Newly Introduced Git Commands with Git Version 2.23

  • Deleting Data (Staged & Unstaged, Commits & Branches)

  • Ignoring Files

  • The Stash

  • Merging, Rebasing and Cherry Picking

  • Bringing Back Deleted Data with the Reflog

  • Connecting Local Git Repositories to Remote GitHub Repositories

  • Git Push & Pull (+ Fetch)

  • Local, Remote Tracking & Remote Branches

  • GitHub Collaborators & Contributors

  • Forks & Pull Requests

  • GitHub Issues

  • Github Projects

  • and so much more.

All covered, explained and applied in easy to understand examples in the course.

-

In this course we'll find answers to questions like:

"How can I delete my last commit?"

"What is the Stash?"

"What is the difference between a merge and a rebase (and what is cherry-picking actually)?"

"How to bring back a deleted commit?"

"What is the difference between a local tracking branch and a remote tracking branch?"

-

What are you waiting for, jump and board and let's GIT started :)

Enroll now

What's inside

Learning objectives

  • Learn all you need to work with git, including all about repositories, commits, branches & more
  • Understand how git works behind the scenes and understand local & remote as well as local-tracking & remote-tracking branches
  • Dive into advanced git features like merging, rebasing, the stash and learn how to manage merge conflicts
  • Bring git's power to the cloud with github
  • Learn how to collaborate in projects via git & github in teams & organizations
  • Learn how to contribute to open-source projects via forks & pull requests
  • Efficiently manage projects with git & github

Syllabus

Introduction
Welcome to this Course!
What is Git?
What is GitHub?
Read more
Join Our Learning Community!
Course Content
How to Get the Most out of this Course!
Course Slides
Optional: Mac Terminal & Windows Command Prompt Introduction
Module Introduction
The Command Line - What & Why?
Comparing the Mac & Windows Command Line
Please Read! Windows & Mac Users
Mac Terminal - The Basics
Accessing Folders
Absolute vs Relative Paths
Creating & Deleting Files
Introducing Flags and Removing Data
Copying & Moving Files & Folders
Mac Terminal - Core Commands Overview
Windows Command Prompt - The Basics
Creating & Deleting Files & Folders
Copying & Moving Files
Windows Command Prompt - Core Commands Overview
Useful Resources & Links
Version Management with Git - The Basics
Theory - How Git Works
Theory: Working Directory vs Repository
Theory - Understanding Branches
Installing Git on Windows
Installing Git on MacOS
Installing Visual Studio Code
Initializing the Repository & Creating the First Commit ("git init" & "git commi
Please Read: Exiting the Log
Diving Deeper Into Commits with "git log"
Understanding & Creating Branches
Merging Branches - The Basics
Understanding the HEAD
The "detached HEAD"
Branches & "git switch" (Git 2.23)
Deleting Data - An Overview
Deleting Working Directory Files
Undoing Unstaged Changes
Undoing Staged Changes
Deleting Commits with "git reset"
Deleting Branches
Committing "detached HEAD" Changes
Understanding .gitignore
Wrap Up & Basic Commands Overview
Assignment - Practicing the Git Basics
Diving Deeper Into Git
Understanding the Stash ("git stash")
Bringing Lost Data Back with "git reflog"
Combining Branches - What & Why?
Understanding Merge Types
Applying the Fast-Forward Merge
The Recursive Merge (Non-Fast-Forward)
Rebasing - Theory
Applying "git rebase"
Handling Merge Conflicts
Merge vs Rebase vs Cherry Pick
Undestanding "git cherry-pick"
Working with Tags ("git tag")
Wrap Up
From Local to Remote - Understanding GitHub
From Local to Remote Repository - Theory
Creating a GitHub Account & Introducing GitHub
Creating a Remote Repository
Connecting Local & Remote Repositories
Understanding the Personal Access Token
MacOS Users Only: Please Read
Pushing a Second Commit
From Local to Remote - Understanding the Workflow
Remote Tracking Branches in Practice
Understanding Local Tracking Branches
Creating Local Tracking Branches
Remote & Tracking Branches - Command Overview
Cloning a Remote Repository
Understanding the Upstream
Deleting Remote Branches & Public Commits
GitHub Deep Dive - Collaboration & Contribution
The 4 GitHub Usecases
Understanding GitHub Account Types
Changing the Repository Type from Public to Private
Pushing Commits to a Public Repository
How GitHub Manages Account Security
Understanding & Adding a Collaborator to a Private User Account
Collaborating in Private Repositories
Comparing Owner & Collaborator Rights

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Builds a foundation in Git and GitHub, which are standard in industry
Strengthens an existing foundation for those with Git and GitHub experience
Taught by experienced instructors, Maximilian Schwarzmüller and Manuel Lorenz
Taken by over 64,000 students
Rated 4.3 stars by over 740 students
Builds skills in Git, the most widely used version control system in industry, and GitHub, the provider for the majority of Git repositories

Save this course

Save Git & GitHub - The Practical Guide to your list so you can find it easily later:
Save

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in Git & GitHub - The Practical Guide with these activities:
Review command line basics
Ensure you have a solid understanding of the command line before using Git.
Show steps
  • Review the basic commands for navigating the command line.
  • Practice creating and deleting files and directories.
  • Learn how to use pipes and redirection.
Use the Git command line
Familiarize yourself with the Git command line to navigate a repository.
Show steps
  • Practice using the `git status` command.
  • Learn how to add, commit, and push changes using the command line.
  • Experiment with branching and merging using the command line.
Follow tutorials on GitHub
Gain practical experience by working through GitHub tutorials.
Show steps
  • Find tutorials that cover specific Git or GitHub features you're interested in.
  • Follow the instructions step-by-step.
  • Test your understanding by completing the exercises.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Join a Git study group
Discuss Git concepts and practices with peers to enhance your understanding.
Show steps
  • Find a study group or create one with classmates.
  • Set regular meeting times.
  • Take turns presenting on different Git topics.
  • Collaborate on Git-based projects.
Build a local Git repository
Apply your Git skills by creating and managing a local repository for a project.
Show steps
  • Choose a project and set up a local Git repository.
  • Track changes to your project files.
  • Create branches to work on different features.
  • Manage merge conflicts and push changes to a remote repository.
Contribute to open-source Git projects
Deepen your Git knowledge by contributing to open-source projects.
Show steps
  • Find open-source projects that use Git.
  • Read the project documentation and identify areas to contribute.
  • Create a pull request with your contributions.
  • Work with the project maintainers to improve your contributions.
Write a blog post about Git
Reinforce your understanding by explaining Git concepts to others.
Show steps
  • Choose a specific Git topic to write about.
  • Research and gather information about the topic.
  • Write a clear and concise blog post that explains the topic to a non-technical audience.
Mentor other students using Git
Solidify your knowledge by teaching and assisting others with Git.
Show steps
  • Identify students who need help with Git.
  • Offer your assistance and schedule regular mentoring sessions.
  • Provide guidance on Git concepts and best practices.
  • Answer questions and help troubleshoot issues.

Career center

Learners who complete Git & GitHub - The Practical Guide will develop knowledge and skills that may be useful to these careers:
Full Stack Engineer
As a Full Stack Engineer, you'll be responsible for working on both the front and back end of websites and applications. You'll need to be able to design, develop, and deploy software applications, and have a strong understanding of Git and GitHub. This course will help you get up to speed on the concepts and skills necessary to succeed in this role, such as version control with Git and its integration with GitHub.
Software Engineer
As a Software Engineer, you'll develop, maintain, and improve software applications. You'll need to be able to understand and implement software requirements, and have a strong foundation in programming languages and software development tools. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Web Developer
Web Developers are responsible for designing and developing websites and web applications. They need to have a strong understanding of HTML, CSS, JavaScript, and other web technologies, and be able to use Git and GitHub for version control. This course will help you get up to speed on the skills you need to succeed in this role, such as working with Git and GitHub.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. They need to have a strong understanding of software development and operations, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Software Architect
Software Architects are responsible for designing and developing software systems. They need to have a strong understanding of software development principles and practices, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Technical Project Manager
Technical Project Managers are responsible for planning, executing, and closing software development projects. They need to have a strong understanding of software development and project management, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Systems Engineer
Systems Engineers are responsible for designing and developing complex systems. They need to have a strong understanding of systems engineering principles and practices, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Data Scientist
Data Scientists are responsible for collecting, analyzing, and interpreting data. They need to have a strong understanding of data science principles and practices, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Machine Learning Engineer
Machine Learning Engineers are responsible for designing and developing machine learning models. They need to have a strong understanding of machine learning principles and practices, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Data Analyst
Data Analysts are responsible for collecting, analyzing, and interpreting data. They need to have a strong understanding of data analysis principles and practices, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Product Manager
Product Managers are responsible for planning, developing, and launching products. They need to have a strong understanding of product management principles and practices, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Business Analyst
Business Analysts are responsible for analyzing business processes and systems. They need to have a strong understanding of business analysis principles and practices, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Project Manager
Project Managers are responsible for planning, executing, and closing projects. They need to have a strong understanding of project management principles and practices, and be able to use Git and GitHub for version control. This course will provide you with the skills you need to succeed in this role, such as working with Git and GitHub.
Technical Writer
Technical Writers are responsible for creating and maintaining technical documentation. They need to have a strong understanding of technical writing principles and practices, and be able to use Git and GitHub for version control. This course may help you get started in the role by introducing you to the basics of Git and GitHub.
Technical Support Specialist
Technical Support Specialists are responsible for providing technical support to customers. They need to have a strong understanding of technical support principles and practices, and be able to use Git and GitHub for version control. This course may help you get started in the role by introducing you to the basics of Git and GitHub.

Reading list

We've selected seven 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 & GitHub - The Practical Guide.
Provides a comprehensive overview of GitHub, covering all aspects of the platform from basic usage to advanced features.
Provides a thorough introduction to Git, covering the basics as well as more advanced topics such as branching, merging, and rebasing.
Focuses on the practical aspects of using Git, providing step-by-step instructions for common tasks such as creating and managing branches, merging changes, and resolving conflicts.
This pocket guide provides a concise and easy-to-understand introduction to Git, covering the basics of version control, branching, merging, and more.
Beginner-friendly guide to using GitHub, covering the basics of the platform as well as more advanced features.

Share

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

Similar courses

Here are nine courses similar to Git & GitHub - The Practical Guide.
Git Training: Step-by-Step Guide to Git Version Control
Most relevant
DevOps with GitHub and Azure: Implementing Source Control...
Most relevant
Branching and Merging in Git
Most relevant
Git Essentials: Mastering Version Control
Most relevant
Git for Developers Using Github
Most relevant
The Ultimate Git Course - with Applications in Unreal...
Most relevant
Git with Visual Studio Code
Most relevant
Git and GitHub Basics
Most relevant
Introduction to Git and GitHub
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