We may earn an affiliate commission when you visit our partners.
Course image
Jason Taylor and John Myers

This course will comprehensively cover the GitHub hosting service as a companion to the Git source control tool, which means no prior knowledge or experience is required. Students will emerge at the end with a very solid understanding and hands-on experience with Git and GitHub.

Read more

This course will comprehensively cover the GitHub hosting service as a companion to the Git source control tool, which means no prior knowledge or experience is required. Students will emerge at the end with a very solid understanding and hands-on experience with Git and GitHub.

Course Organization

The course is divided into four major components:

  • Introduction and Setup

  • Learning Git Source Control

  • All About GitHub

  • Bonuses

Each one of the above components spans multiple sections in this course.

New. Video explaining how to resolve Git breaking when upgrading macOS each year

Introduction

The Introduction provides a welcome to the course including some useful tips for getting the most out of taking the course and how the course is designed. That is followed by the Core Concepts which go over some critical theory before diving straight into Git.

After the introduction and core concepts, the first thing we do is a Quick Installation for both Windows and Mac. The Bonus section has a more comprehensive, step-by-step process for those that prefer it.

Learning Git Source Control

In The Basics, we walk through all the foundational commands needed to start a new project managed by Git (or enable Git for an existing project) all the way through making commits, including common file operations like moving and deleting files. We also cover how to exclude the wrong files from accidentally being committed and how to review your repository's history.

With a strong foundation in place, we explore some more Advanced Git topics like comparing differences, branching and merge resolution, tagging special events, saving work in progress, and even a bit of time travel.

All About GitHub

The main part of this course is all about GitHub. We will explore GitHub indepth from a source control hosting repository perspective.

In Welcome to GitHub we start off exploring some of the basic features of GitHub by creating a fresh repository and associate our local repository with it. Then, we prepare for the remainder of the course by setting up SSH Authentication, which we will use from this point forward. After that, we continue looking at the GitHub Repository, including many of the same operations we performed locally, but done directly within GitHub. Then in GitHub Repository Branches we dive into how Branches on GitHub and our local system work with each other.

After we have comprehensively covered how GitHub repositories work, we focus on how GitHub Tags and Releases work and their relationship with local tags in Git. We can then use tags/releases while Comparing Differences on GitHub.

We start tying things together in Social Coding where we join other projects on GitHub by forking and then submitting our contributions back using pull requests.

Once part of a team, you might use GitHub Issues to track defects or enhancement requests.

Sometimes you just need to share small parts of a file or a set of files, but don't want to bother with a full Git repository. That where GitHub Gists help out share just a snip of code or entire files.

Finally, group related GitHub repositories with GitHub Organizations and manage permissions and access using teams.

Bonuses

The bonuses sections and lectures provide additional information, more comprehensive instructions, or non-critical lectures.

Course Features

All tools have installation and configuration sections to ensure no one is left behind.Presentations provide audio/video training of conceptual ideas. Since few like slide-ware presentations, slide-presentations are kept to a minimum.

Screencasts provide a video of the instructor's computer system with any actions, commands, or screens displayed and narrated. There is nearly 5 hours of screencast based video training in order to step through each command or action in sufficient detail.

All videos are available in high quality 1080p / Full HD resolution for sharp and clear viewing on modern desktops and tablets.

Several attachments and document lectures throughout the course provide supplemental information, illustrations, or other reference material.

Moving Forward

This course will expand periodically to include more topics, supporting materials and bonus content. Some content may be in direct response to student feedback or discussions so get engaged with the course discussions feature.

Enroll now

What's inside

Learning objectives

  • Learn the key concepts of the git source control system
  • Step through the entire git workflow
  • Compare the different states in git
  • Manage files inside and outside the control of git and github
  • Create and manage repositories on github
  • Create branches and resolve conflicts with confidence
  • Save work in progress with stashes
  • Mark special events with tags and releases
  • Even a bit of time travel within git repositories and on github
  • Perform many of the same local git operations directly on github
  • Join other github projects by forking and contribute back using pull requests
  • Review and accept pull requests from others
  • Share code with gists
  • Manage project defects or enhancement requests with github issues
  • Group related repositories together with github organizations
  • Show more
  • Show less

Syllabus

Course Welcome and Core Concepts

An overview of what we will be covering in this course, including Git basics, advanced git techniques, sharing code snippets, and organizations within Git.

Read more

A guide to the technical level this course is targeted at, as well as an explanation of the pace and step-by-step command line approach used by this course.

We will be using the command line due to it's rich feature set and ability to teach concepts in more depth than would be otherwise possible.

Overview of most important concepts

An overview of the core Git concepts we will explain in this section.

A quick explanation of how Git works as a decentralized version control system.

An explanation of how Git uses a repository to keep track of all of the changes we will make to the code throughout this section.

A guide to the way that Git archives individual file history in order to preserve the total history of the repository.

A quick overview of the remote repository service GitHub, including the limitations of only allowing public repositories for free (which has recently been changed).

Fast install processes of all tools and programs needed for course.

An overview to the tools we will install in this quick installation section of the course.

A quick guide to installing and configuring Git for Windows, Notepad++, and P4Merge on your system to be ready for the rest of this course.

Quick Installation on Windows Notes

A quick guide to installing and configuring Git from Apple, TextMate 2, and P4Merge on your system to be ready for the rest of this course.

Quick Install on Mac OS X Notes
Foundational aspects of Git source control

An overview of the topics covered in this section, including creating a new repository, getting support, performing a basic workflow, working with files, excluding files from Git, and undoing mistakes.

Creating our initial Git repository using basic commands in Git.

An overview of the three local sates in Git, including the working directory, staging area, and Git repository, as well as the possible fourth state of remote.

Making our first commit in Git in order to start our repository's history.

A guide to the way the Git repository manages history inside it's ".git" folder.

Adding Git source control to an already existing project, just in case you forgot to initialize source control before starting your project.

Adding files to create differing commits within our Git repository.

Using the "git log" and "git show" commands in order to view our Git history so far.

Using options with the commit command to make committing faster when we update one of our files.

Backing out our changes in order to undo changes we might not want before we add them to our Git Repository.

Viewing our Git History in more practical ways and creating an alias to shorten that command down to be easier to use.

An explanation of how Git keeps track of files through renames and deletions.

Using external tools to manage files and seeing the impact this has on our Git Repository.

Using our ".gitignore" in order to only keep a history for the files we wish to keep track of.

Become familiar with comparing, branching, tagging and other advanced skills.

An overview of the advanced topics covered in this section, such as comparing differences, branching, merging, resolving conflicts, creating milestones, and traveling through time in our repository.

How to compare differences between two commit points within Git.

An overview of the theory of how branching works within Git.

Special markers generally help refer to the heads of branches.

Creating a branch to work on a feature and then merging that branch back into master and finally deleting it.

Creating a conflict in our repository in order to view the various ways in which Git can show us the details of the conflict.

Adding tags to commits in order to bookmark them for later.

Saving our changes by stashing allows us to modify other things without committing our current changes.

Using "reset" and "reflog" in order to go back to previous commit points in our Git history.

Introduction to GitHub

An overview of why we will be using GitHub to back up our project and history remotely.

Creating our GitHub account so we can back up our repositories throughout the rest of this course.

Setting up our GitHub profile in order to up or trust level when committing on repositories.

Adjusting our general Git settings on GitHub.

Creating a new remote repository on GitHub.

Linking our local Git repository to our remote repository on GitHub using the command line on our local system.

Pushing our source files, changes, and history from our local Git repository to our remote GitHub repository.

Verifying that the changes we pushed up in the previous lesson actually made it up to GitHub.

GitHub recently changed the default branch name from "master" to "main" - which impacts the rest of this course.

Setup and use SSH authentication on GitHub

An overview of why SSH authentication, which we will set up in this section, is faster and more secure.

A quick overview of the differences between the HTTPS and SSH authentication strategies, and how it will practically affect using the remote repository.

Using our system's terminal to generate a public and private SSH keypair that will allow us to use SSH authentication to log into our remote GitHub repository.

Using our newly generated GitHub key in order to set up SSH authentication to ease the process of pushing upto GitHub from our local system.

Work with the GitHub repository

An overview of the topics covered in this section, mainly about doing operations to our remote repository on GitHub.

Creating a new repository on GitHub so that we can use it throughout this section.

Downloading our remote repository from GitHub onto our local system.

Adding dummy HTML files to the local copy of our GitHub repository from initializr in order to have sample files on our repository.

Pushing our changes from our local system back onto our GitHub repository.

Understanding the differences between the fetch and pull command when getting changes from GitHub.

Exploring the features that GitHub provides, such as commits, branches, cloning, downloading, renaming and deleting repositories.

Updating our remote references on our local system in order to keep the local project synced up with the remote GitHub project.

Various ways of viewing the files and folders on our GitHub repository.

Although it isn't recommended, GitHub offers the capacity to directly edit files on GitHub, which may sometimes be the most convenient way of doing things.

Using GitHub to add new files to the repository.

Creating a file on GitHub and making sure that it is created onto our main (master) branch.

Showing how GitHub handles the renaming and deletion of files both in terms of it's repository and history.

Pushing the files we created on GitHub down to our local repository by pulling the changes down from GitHub.

Using the list of commits to view the history of commits we have made throughout this section.

Looking at specific commits on GitHub to get a more detailed look at our commit history.

Using GitHub to roll back our repository to an earlier commit.

Using GitHub's interface to find commit IDs and then viewing them on our local system.

Work with branches on GitHub

An overview of the branching we will do in this section, including interactions between GitHub and our local repository.

Using GitHub to create branches on our remote repository.

Starting locally by creating a branch on our local system before pushing it up to GitHub for future work.

Using GitHub to initiate pull requests in order to merge in branches from within the GitHub interface.

Using out local copy of the GitHub repository to merge before pushing up the merge to GitHub.

Checking out a remote branch from GitHub onto our local system.

Removing old unneeded branches and references from our GitHub repository.

Using rebase to pull down commits from GitHub, stepping through the individual commits on our local system in order to more fully integrate the history of our remote branch with our local branch.

Using our local system to view a graph of our history before comparing that to the GUI graph that is provide on GitHub.

Changing the default branch of a repository from the master branch to another long living branch, due to the master branch commonly not being ideal for active development.

Comparing conflicts between a remote (GitHub) copy of repository and local copy of a repository in order to resolve them.

Setup and use tags and releases on GitHub

The uses of Git tags we will go over in this section, including marking project milestones and making release notes on GitHub.

Using our local repository to create tags and annotated tags for important commits, which we will use in the next few videos on our GitHub repository.

Using our local repository to push up the tags on our local system to our remote repository.

Viewing how the tags we created on our local system look on our remote GitHub repository.

Using both our remote GitHub repository as well as our local Git repository to remove tags that are no longer applicable or wanted.

Using more advanced techniques to create floating tags that move along with development, say to keep track of which is the most up to date version of the unstable build.

Using more advanced tagging features to create a tag that specifies release information about a build we want to release.

Observing the information GitHub has about releases, as well as deleting releases that are no longer relevant or wanted.

Using a more complicated feature in GitHub to create both a tag and a release at the same time, instead of creating them separately.

Compare differences using GitHub

An overview of the ways in which we will use GitHub to compare differences, including comparing between branches, tags, and commits, as well as integration with pull requests.

Using the pull request feature to make commit comparison easy on GitHub.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops foundational skills in using Git and GitHub, which are essential for collaboration and version control in software development
Provides hands-on experience through screencasts, attachments, and document lectures
Provides detailed coverage of both Git and GitHub, including advanced topics like branching and merging
Suitable for beginners who have no prior knowledge or experience with Git or GitHub
Taught by experienced instructors with expertise in the field
Provides a comprehensive understanding of the subject matter, making it suitable for students who want to build a solid foundation in Git and GitHub

Save this course

Save GitHub Ultimate: Master Git and GitHub - Beginner to Expert to your list so you can find it easily later:
Save

Reviews summary

Outdated course, not good enough

According to students, this course is outdated and does not explain key concepts like pull and push well enough. The second half moves too fast, and in the Social Coding section the instructions are unclear.
Instructions for Social Coding were unclear.
"In section titled Social Coding the presenter left out the explanation on how to get to the second profile and I was not able to finish the section."
Pull and push were not explained well enough.
"The pull and push were not explained good enough. I spent time on other web sites learning what he should explain."
This course is out-of-date.
"Outdated."
"Maybe this was OK five years ago when the training was created, but I would look for more current training if I was looking for a GitHub training again."

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 GitHub Ultimate: Master Git and GitHub - Beginner to Expert with these activities:
Organize Your Course Materials
Organizing your course materials will help you stay on top of the material and make it easier to study for exams.
Browse courses on Git
Show steps
  • Create a folder for your course materials.
  • Download all of the course materials.
  • Organize the materials into subfolders.
Read "Git Pocket Guide"
Reading this book will help you build a solid foundation in Git before the course starts.
Show steps
  • Purchase the book or borrow it from the library.
  • Read the book cover to cover.
  • Take notes and highlight important concepts.
  • Try out the examples in the book.
Review Command Line Basics
Refreshing your command line knowledge will make it easier to follow along with the course material.
Browse courses on Command Line
Show steps
  • Review the basics of the command line.
  • Practice using the command line to navigate your file system.
  • Try out some basic Git commands.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Review Basic Programming Concepts
Refreshing your basic programming concepts will make it easier to understand Git and its commands.
Browse courses on Programming
Show steps
  • Review the basics of programming.
  • Practice writing simple programs.
  • Try out some basic Git commands.
Join a Git Study Group
Joining a Git study group will give you the opportunity to learn from and collaborate with other students.
Browse courses on Git
Show steps
  • Find a Git study group online or in your local area.
  • Attend the study group meetings.
  • Participate in discussions and ask questions.
Watch Git Tutorials
Watching Git tutorials will help you learn about the basics of Git in a concise and engaging way.
Browse courses on Git
Show steps
  • Find a list of Git tutorials online.
  • Watch the tutorials.
  • Take notes and highlight important concepts.
Practice Using Git Commands
Practicing using Git commands will help you master the material covered in the course.
Browse courses on Git
Show steps
  • Find a list of Git commands online.
  • Practice using each command in your own Git repository.
  • Try to use the commands in different scenarios.
Create a Git Project
Creating a Git project will give you hands-on experience with using Git in a real-world setting.
Browse courses on Git
Show steps
  • Choose a project idea.
  • Create a new Git repository for your project.
  • Add files to your repository.
  • Commit your changes to the repository.
  • Push your changes to a remote repository.

Career center

Learners who complete GitHub Ultimate: Master Git and GitHub - Beginner to Expert will develop knowledge and skills that may be useful to these careers:
Software Developer
As a Software Developer, you will spend much of your time writing code. You'll also be working with existing code, such as when you are debugging, testing, and refactoring. The GitHub Ultimate course can help you with many aspects of this role. For example, the course covers branching, merging, resolving conflicts, creating milestones, and traveling through time in your repository. These are very useful skills for Software Developers.
Software Engineer
As a Software Engineer, you will use many of the same tools and techniques as a Software Developer. One of the most common tasks you'll perform is source control. The GitHub Ultimate course can help you with source control, as it goes over version control, history, and branches. This is a skill that all Software Engineers need.
Web Developer
As a Web Developer, you will use many of the same tools and techniques as a Software Developer. One of the most common tasks you'll perform is source control. The GitHub Ultimate course can help you with source control, as it goes over version control, history, and branches. This is a skill that all Web Developers need.
Full-Stack Developer
As a Full Stack Developer, you will use many of the same tools and techniques as a Software Developer. One of the most common tasks you'll perform is source control. The GitHub Ultimate course can help you with source control, as it goes over version control, history, and branches. This is a skill that all Full Stack Developers need.
DevOps Engineer
As a DevOps Engineer, you will work with both development and operations teams. You will need to be familiar with the tools and techniques used by both teams. The GitHub Ultimate course can help you with this, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that DevOps Engineers need.
Technical Writer
As a Technical Writer, you will be responsible for writing documentation for software and other technical products. This includes tasks such as gathering information, organizing content, and writing clear and concise instructions. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that Technical Writers may find useful.
Software Tester
As a Software Tester, you will be responsible for testing software to find bugs. This includes tasks such as creating test cases, executing tests, and reporting defects. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that Software Testers may find useful.
Quality Assurance Analyst
As a Quality Assurance Analyst, you will be responsible for ensuring that software meets quality standards. This includes tasks such as creating test plans, conducting audits, and recommending improvements. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that Quality Assurance Analysts may find useful.
System Administrator
As a System Administrator, you will be responsible for managing and maintaining computer systems. This includes tasks such as installing software, configuring hardware, and troubleshooting problems. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that System Administrators may find useful.
Project Manager
As a Project Manager, you will be responsible for planning, executing, and closing projects. This includes tasks such as setting goals, creating schedules, and managing budgets. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that Project Managers may find useful.
Technical Support Specialist
As a Technical Support Specialist, you will be responsible for providing technical support to customers. This includes tasks such as answering questions, troubleshooting problems, and resolving issues. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that Technical Support Specialists may find useful.
Business Analyst
As a Business Analyst, you will be responsible for analyzing business processes and systems. This includes tasks such as gathering requirements, identifying problems, and recommending solutions. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that Business Analysts may find useful.
Data Analyst
As a Data Analyst, you will be responsible for collecting, cleaning, and analyzing data. This includes tasks such as writing queries, creating reports, and presenting findings. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that Data Analysts may find useful.
Product Manager
As a Product Manager, you will be responsible for managing the development of software products. This includes tasks such as gathering requirements, defining features, and setting deadlines. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that Product Managers may find useful.
IT Manager
As an IT Manager, you will be responsible for overseeing the IT department. This includes tasks such as budgeting, planning, and staffing. The GitHub Ultimate course may be useful to you, as it covers a variety of topics, including version control, branching, merging, and resolving conflicts. These are all skills that IT Managers may find useful.

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 GitHub Ultimate: Master Git and GitHub - Beginner to Expert.
Is recommended for someone who wants more detail on some concepts of git and also wants some in depth information on how to setup a git server, as well as some system administration topics.
Is recommended for someone who wants quick and easy to find information on Git reference. This book is recommended as a supplement to another book that dives deeper into the advanced Git techniques.
Is recommended for someone who wants to learn more on how to use Git in a collaborative environment. This includes how to work with other developers and how to manage different branches.
Is recommended for someone who wants to learn the essential commands and concepts of Git. This book is ideal for beginners who want to get started with Git quickly.
Is recommended for someone who wants to learn more about Git through practical examples. This book covers a wide range of topics, including Git basics, branching, merging, and conflict resolution.
Is recommended for someone who wants to learn more about GitHub. This book covers topics such as creating a GitHub account, creating a repository, and collaborating with others on GitHub.

Share

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

Similar courses

Here are nine courses similar to GitHub Ultimate: Master Git and GitHub - Beginner to Expert.
Git Mastery: Beginner to Expert with GitHub & GitLab
Most relevant
Git & GitHub Complete Masterclass : Beginner to Git Expert
Most relevant
The Git and GitHub for Beginners
Most relevant
GitHub Fundamentals
Most relevant
The Git & Github Bootcamp
Most relevant
Git & GitHub - The Practical Guide
Most relevant
Version Control in node.js: Update Your App with GitHub
Most relevant
Git for Developers Using Github
Most relevant
DevOps with GitHub and Azure: Implementing Source Control...
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