We may earn an affiliate commission when you visit our partners.
Course image
Colt Steele

The following sentence is annoying, but also true: the best time to learn Git was yesterday. Fortunately, the second best time is today.   Git is an essential tool for work in any code-related field, from data science to game development to machine learning.  This course covers everything you need to know to start using Git and Github in the real-world today.

Read more

The following sentence is annoying, but also true: the best time to learn Git was yesterday. Fortunately, the second best time is today.   Git is an essential tool for work in any code-related field, from data science to game development to machine learning.  This course covers everything you need to know to start using Git and Github in the real-world today.

The course's 20+ sections are broken down into four separate units:

  • Git Essentials

  • Next Level Git

  • Github & Collaboration

  • The Tricky Bits

We start off with Git Essentials.  The goal of this unit is to give you all the essential Git tools you need for daily use.  We start off talking about version control software, what it is, why it matters, and the history of Git.  Then we install Git and run through the Unix commands you'll need to work with Git (you can skip this if you're already familiar).  The bulk of this unit is focused on teaching the core Git mechanics like committing and branching and the associated concepts: the working directory, the repository, the staging area, etc.    We cover Git commands including: git init, git add, git commit, git status, git log, git branch, and git merge.  We end with a detailed look at branching, merging, and resolving conflicts.

Then we move on to out Next Level Git unit, where we cover additional commands and Git concepts that are extremely useful, but maybe not as "core" as the Git Essentials.  We start with a comprehensive look at the gif diff command and the various comparisons that we can make between commits, branches, the working directory, the staging area, and more.   We pay special attention to reading and parsing the dense output generated by diffs.  Then we shift our focus to stashing with the git stash command, a "convenience command" that many users love incorporating into their Git workflow.  Finally, we dive deep into undoing changes and time traveling with Git.  We learn how to revisit earlier work, detach and re-attach HEAD, and discard changes.  We cover git commands that help us undo changes including git checkout, git restore, git reset, and git revert.

Next up, we change gears to focus on Github & Collaboration.  We start by exploring Github (and similar tools) that host remote repositories and discussing the benefits they provide.  We create our own Github repositories and sync up changes between our remote and local repositories using the git push, git pull, and git fetch commands.  We then focus on commonly used collaboration workflows that students may encounter in the real world: feature branching, pull requests, forking & cloning, and more. We discuss contributing to open source projects and configuring Github repositories for collaboration. We also spend some time learning about useful Github features including Github Gists and Github Pages for free static hosting.

The last unit in the course, The Tricky Bits, is really just a collection of useful Git command and advanced topics.  We start by covering one of the "scarier" Git commands: rebasing.   We discuss the potential benefits and pitfalls of rebasing and compare it to merging.  Then we learn how to clean up our Git history by rewording, editing, dropping, and squashing commits using the interactive rebase command.  Next, we discuss Git tags (lightweight and annotated tags) semantic versioning and tagging workflows.  After that, we move on to a deep dive into the inner workings of Git.  We discuss the files and folders Git uses internally, the role of hashing functions in Git, and the role of Git objects (blobs, trees, etc.). Next, we talk about reference logs and the git reflog command.  Specifically, we learn how we can use reflogs to rescue "lost" commits and undo rebases.  Finally, we learn how to write custom and powerful Git aliases.

Throughout the course, you'll find tons and tons of diagrams and visual references I've created to try and explain Git.  The course also includes exercises I've tested on my in-person students, to give you an opportunity to practice the concepts in the course along the way.  If you are reading this sentence, I congratulate you on making it this far :) I hope you enjoy the course.

Enroll now

What's inside

Learning objectives

  • Understand how git works behind the scenes
  • Explain the difference git objects: trees, blobs, commits, and annotated tags
  • Master the essential git workflow: adding & committing
  • Work with git branches
  • Perform git merges and resolve merge conflicts
  • Use git diff to reveal changes over time
  • Master git stashing
  • Undo changes using git restore, git revert, and git reset
  • Work with local and remote repositories
  • Master collaboration workflows: pull requests, "fork & clone", etc.
  • Squash, clean up, and rewrite history using interactive rebase
  • Retrieve "lost" work using git reflogs
  • Write custom and powerful git aliases
  • Mark releases and versions using git tags
  • Host static websites using github pages
  • Create markdown readmes
  • Share code and snippets using github gists
  • Show more
  • Show less

Syllabus

Course Orientation
Welcome To The Course!
Join Our Community!
What The Course Covers
Read more
A Note On The Exercises
Accessing The Slides & Diagrams
Introducing...Git!
What Really Matters In This Section
What Exactly Is Git?
Visualizing Git
A Quick History Of Git
Who Uses Git?
Git Vs. Github: What's The Difference?
Installation & Setup
Installing Git: Terminal Vs. GUIs
WINDOWS Git Installation
MAC Git Installation
Configuring Your Git Name & Email
Installing GitKraken (Our GUI)
Terminal Crash Course: Introduction
Terminal Crash Course: Navigation
Terminal Crash Course: Creating Files & Folders
Terminal Crash Course: Deleting Files & Folders
The Very Basics Of Git: Adding & Committing
What Is A Git Repo?
Our First Commands: Git Init and Git Status
The Mysterious .Git Folder
A Common Early Git Mistake
The Committing Workflow Overview
Staging Changes With Git Add
Finally, The Git Commit Command!
The Git Log Command (And More Committing)
Committing Exercise
Commits In Detail (And Related Topics)
Navigating The Git Documentation
Keeping Your Commits Atomic
Commit Messages: Present Or Past Tense?
Escaping VIM & Configuring Git's Default Editor
A Closer Look At The Git Log Command
Committing With A GUI
Fixing Mistakes With Amend
Ignoring Files w/ .gitignore
Working With Branches
Introducing Branches
The Master Branch (Or Is It Main?)
What On Earth Is HEAD?
Viewing All Branches With Git Branch
Creating & Switching Branches
More Practice With Branching
Another Option: Git Checkout Vs. Git Switch
Switching Branches With Unstaged Changes?
Deleting & Renaming Branches
How Git Stores HEAD & Branches
Branching Exercise
Merging Branches, Oh Boy!
An Introduction To Merging
Performing A Fast Forward Merge
Visualizing Merges
Generating Merge Commits
Oh No! Merge Conflicts!
Resolving Merge Conflicts
Using VSCode To Resolve Conflicts
Merging Exercise
Comparing Changes With Git Diff
Introducing The Git Diff Command
A Guide To Reading Diffs
Viewing Unstaged Changes
Viewing Working Directory Changes
Viewing Staged Changes
Diffing Specific Files
Comparing Changes Across Branches
Comparing Changes Across Commits
Visualizing Diffs With GUIs
Diff Exercise
The Ins and Outs of Stashing
Why We Need Git Stash
Stashing Basics: Git Stash Save & Pop
Practicing With Git Stash
Git Stash Apply
Working With Multiple Stashes
Dropping & Clearing The Stash
Stashing Exercise
Undoing Changes & Time Traveling
Checking Out Old Commits
Re-Attaching Our Detached HEAD!
Referencing Commits Relative to HEAD
Discarding Changes With Git Checkout
Un-Modifying With Git Restore
Un-Staging Changes With Git Restore
Undoing Commits With Git Reset
Reverting Commits With...Git Revert
Undoing Changes Exercise

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Develops professional skills and deep expertise in version control
Offers a comprehensive study of one aspect of version control
Covers unique perspectives are ideas that may add color to other topics and subjects

Save this course

Save The Git & Github Bootcamp 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 The Git & Github Bootcamp with these activities:
Review basic Unix commands
Familiarize yourself with the Unix commands that you will be using throughout the course.
Browse courses on Unix Commands
Show steps
  • Read through the Unix Crash Course in the course materials.
  • Practice using the commands in a terminal emulator.
Follow Git tutorials on the official website
Gain a deeper understanding of Git by following interactive tutorials from the official source.
Browse courses on Git
Show steps
  • Visit the Git website and explore the available tutorials.
  • Choose a tutorial that aligns with your current skill level.
  • Follow the instructions and complete the exercises.
Solve Git exercises on platforms like HackerRank
Test your Git skills and identify areas for improvement by solving coding exercises.
Browse courses on Git
Show steps
  • Create an account on a platform like HackerRank.
  • Search for Git exercises and attempt to solve them.
  • Review your solutions and learn from your mistakes.
Six other activities
Expand to see all activities and additional details
Show all nine activities
Attend a Git workshop or training session
Gain additional knowledge and insights from experts in a structured setting.
Browse courses on Git
Show steps
  • Research and find Git workshops or training sessions in your area.
  • Register and attend the workshop.
  • Participate actively and take notes during the session.
Join a Git community and answer questions
Reinforce your knowledge by helping others and engaging in discussions.
Browse courses on Git
Show steps
  • Join a Git community on platforms like GitHub Discussions or Stack Overflow.
  • Monitor the community for questions related to Git.
  • Provide thoughtful and helpful answers to the best of your ability.
Create a blog post or tutorial on a specific Git topic
Deepen your understanding of Git by teaching others.
Browse courses on Git
Show steps
  • Choose a specific Git topic that you are proficient in.
  • Write a comprehensive blog post or tutorial explaining the topic.
  • Publish your content online and share it with others.
Build a personal Git workflow automation script
Deepen your understanding of Git commands and scripting by automating your workflow.
Browse courses on Git
Show steps
  • Identify repetitive tasks in your Git workflow.
  • Write a script using a programming language like Python or Bash.
  • Test your script and iterate until it meets your needs.
Participate in Git-related hackathons or coding challenges
Challenge yourself and showcase your skills in a competitive environment.
Browse courses on Git
Show steps
  • Find Git-related hackathons or coding challenges online.
  • Form a team or participate individually.
  • Develop innovative solutions and compete against other participants.
Contribute to an open-source Git project
Get hands-on experience with Git by contributing to real-world projects.
Browse courses on Git
Show steps
  • Find an open-source Git project that interests you.
  • Review the project's documentation and contribution guidelines.
  • Identify an area where you can make a meaningful contribution.
  • Submit a pull request with your changes.

Career center

Learners who complete The Git & Github Bootcamp will develop knowledge and skills that may be useful to these careers:
Computer Programmer
As a Computer Programmer, you would be responsible for writing and maintaining code for a variety of applications. Computer Programmers often work with a variety of coding languages and development frameworks. A solid understanding of version control systems like Git would be critical to your success in this role. This Bootcamp provides a comprehensive overview of Git and GitHub, and it would be an excellent resource for you as you embark on your Computer Programming career.
Software Developer
As a Software Developer, you would be responsible for designing, developing, and maintaining software applications. As a Software Developer, you would be working with a variety of coding languages and development frameworks. A solid understanding of version control systems like Git would be critical to your success in this role. This Bootcamp provides a comprehensive overview of Git and GitHub, and it would be an excellent resource for you as you embark on your Software Development career.
DevOps Engineer
DevOps Engineers are responsible for bridging the gap between development and operations teams. As a DevOps Engineer, you would be working to ensure that code is released quickly and efficiently while maintaining quality standards. Understanding how to use version control systems like Git would be essential to your success in this role. The Git & Github Bootcamp will provide you with the knowledge you need to use Git and GitHub effectively, helping you build a solid foundation for a successful career as a DevOps Engineer.
Systems Analyst
As a Systems Analyst, you would be responsible for analyzing, designing, and implementing IT systems. You would be working with a variety of stakeholders, including business users, IT staff, and management. A solid understanding of version control systems like Git would be critical to your success in this role. This Bootcamp provides a comprehensive overview of Git and GitHub, and it would be an excellent resource for you as you embark on your Systems Analyst career.
Data Scientist
As a Data Scientist, your work would focus on collecting, cleaning, and analyzing data to help businesses make informed decisions. Understanding how to use Git and collaborate with teammates efficiently would be essential to your ability to effectively manage large datasets and share your findings with stakeholders. This Bootcamp provides a comprehensive overview of Git and GitHub, and it would be an excellent resource for you as you embark on your Data Science career.
Web Developer
As a Web Developer, you will be responsible for designing, developing, and maintaining websites and web applications. Web Developers often collaborate with other team members, including designers, engineers, and project managers. A solid understanding of version control systems like Git is crucial for ensuring that your codebase remains organized and free of errors as your team works together to build and update websites and web applications. This Bootcamp will help you develop proficiency in Git and GitHub, skills that will be invaluable in your role as a Web Developer.
Software Engineer
Software Engineers are responsible for designing, developing, and maintaining software applications. As a Software Engineer, you would be working with a variety of coding languages and development frameworks. A solid understanding of version control systems like Git would be critical to your success in this role. The Git & Github Bootcamp will provide you with the knowledge you need to use Git and GitHub effectively, helping you build a solid foundation as you launch your career in Software Engineering.
IT Systems Administrator
As an IT Systems Administrator, you would be responsible for maintaining and supporting IT systems. You would be working with a variety of hardware and software technologies, and you would need to have a strong understanding of version control systems like Git. This Bootcamp would provide you with the knowledge you need to use Git and GitHub effectively, helping you build a solid foundation for a successful career as an IT Systems Administrator.
IT Project Manager
As an IT Project Manager, you would oversee the planning, implementation, and completion of IT projects. You would be responsible for ensuring that projects are delivered on time, within budget, and to the required quality standards. Understanding how to use Git and collaborate with teammates efficiently would be essential to your ability to effectively manage IT projects and communicate with stakeholders. This Bootcamp would provide you with a solid overview of Git and GitHub and help you build a foundation for success in IT Project Management.
Cloud Engineer
As a Cloud Engineer, you would be responsible for designing, building, and maintaining cloud computing systems. Cloud Engineers often work with a variety of tools and technologies, including version control systems like Git. This Bootcamp would provide you with a strong understanding of Git and GitHub, two essential tools for managing and tracking changes to code. With the skills and knowledge you gain from this Bootcamp, you'll be well-positioned for a successful career as a Cloud Engineer.
Network Engineer
As a Network Engineer, you would be responsible for the design, implementation, and maintenance of computer networks. You would be working with a variety of network technologies and protocols, and you would need to have a strong understanding of version control systems like Git. This Bootcamp would provide you with the knowledge you need to use Git and GitHub effectively, helping you build a solid foundation for a successful career as a Network Engineer.
IT Auditor
As an IT Auditor, you would be responsible for evaluating the effectiveness of an organization's IT controls. IT Auditors often work with a variety of tools and technologies, including version control systems like Git. This Bootcamp would provide you with a strong understanding of Git and GitHub, two essential tools for managing and tracking changes to code. By completing this Bootcamp, you'll gain the skills and knowledge necessary to excel as an IT Auditor.
Security Analyst
As a Security Analyst, you would be responsible for protecting an organization's computer networks and systems from unauthorized access, use, disclosure, disruption, modification, or destruction. Security Analysts often work with a variety of tools and technologies, including version control systems like Git. This Bootcamp would provide you with a strong understanding of Git and GitHub, two essential tools for managing and tracking changes to code. With the skills and knowledge you gain from this Bootcamp, you'll be well-positioned for a successful career as a Security Analyst.
IT Manager
As an IT Manager, you would oversee the planning, implementation, and maintenance of IT systems. IT Managers often work with a variety of tools and technologies, including version control systems like Git. This Bootcamp would provide you with a solid overview of Git and GitHub, and it would be an excellent resource for you as you learn to manage and track changes to IT systems. By completing this Bootcamp, you'll gain the skills and knowledge necessary to excel as an IT Manager.
Database Administrator
As a Database Administrator, you would oversee the planning, implementation, and maintenance of database systems. Database Administrators often work with a variety of tools and technologies, including version control systems like Git. This Bootcamp would provide you with a solid overview of Git and GitHub, and it would be an important resource as you learn to manage and track changes to database systems. Whether you are new to database administration or looking to advance your career, this Bootcamp can help you build a strong foundation in 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 The Git & Github Bootcamp.
Could serve as either a background reference or a replacement for this course, as it covers a wide range of Git commands and concepts.
Would fit this course well as a companion reference text.
Practical guide to using Git for version control. It covers all the essential Git commands and concepts, and it is written in a clear and concise style.
Comprehensive guide to infrastructure as code. It covers all the essential concepts and practices of infrastructure as code, and it also provides advice on how to implement infrastructure as code in your own organization.
Provides a comprehensive overview of Git, and good choice for students who want to learn about the basics of Git.
Provides a deep dive into the inner workings of Git, and good choice for students who want to learn more about the technical side of Git.

Share

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

Similar courses

Here are nine courses similar to The Git & Github Bootcamp.
Getting Started with GitHub Desktop
Most relevant
Git Going with Comparing, Branching and Merging
Most relevant
Git & GitHub - The Practical Guide
Most relevant
Git Basics for DevOps
Most relevant
Git for beginners with Hands-on Labs
Most relevant
Git Complete: The definitive, step-by-step guide to Git
Most relevant
Getting Started with Git and GitHub
Most relevant
Git Mastery: Beginner to Expert with GitHub & GitLab
Most relevant
GitHub Ultimate: Master Git and GitHub - Beginner to...
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