Real-world Git

Learn the most important Git commands.


Course preview video

About this course

Git is a staple of almost every programming job. It is powerful. But, it can also be confusing. You can accidentally make big mistakes on your codebase with just a few keystrokes. Because of this, many developers rely on graphical apps to use Git. While this works fine for a lot of people, I think knowing how to use Git directly from the command line is a lot more flexible once you understand a few things. It's also a lot of fun! Running Git commands from your terminal makes you feel like a wizard.


  • Free
  • 22 videos
  • 1 hour to watch
  • Example code to download and practice with
  • Quizzes after each section to make sure you understand
  • All videos can be downloaded so you aren't locked into where you can view them

Course curriculum


Creating local repos with git init
Copying remote repos to local machines with git clone
Capturing code history snapshots with git add/commit/push
Documenting repos with README files

Working with others

Syncing local and remote repos with git pull
Isolating feature development with git branch
Syncing branches with git merge
Resolving merge conflicts with git status
Saving uncommitted changes with git stash

Viewing code history

Navigating git command pager output with Unix less commands
Viewing commit history with git log
Formatting commit history with git log arguments
Filtering commit history with git log arguments
Comparing file changes with git diff
Checking who changed lines last with git blame

Tips and tricks

Using semantic versioning with git tag
Cleaning up commits with git rebase
Diagnosing which commit broke something with git bisect
Running scripts on git events with git hooks
Configuring global settings with git config
Removing unnecessary git tracking with .gitignore files
Removing all unnecessary git tracking with a global .gitignore file

Languages and tools used courses show timeless principles applied. The examples in the course use specific languages and tools, but serve only to illustrate one way of applying those timeless principles. You don’t need to know the specific languages or tools shown. The lessons work with whatever coding language, editor, terminal emulator etc. that you use.

Your instructor

Well hello there! My name is Trevor.

I've been programming for over 10 years. I've been teaching programming for over 5 years through coding bootcamps, workshops, meetups, conferences, online courses, and as the former Director of Instruction at All in all, I've taught thousands of people how to be more effective developers.

Get started