🎓 Courses
Git Basics
If you understand the basics and feel comfortable using Git for version control it is time to look into the core concepts and some advanced features. Use this guided course and follow along.
Start CourseGit Internals
If you understand the basics and feel comfortable using Git for version control it is time to look into the core concepts and some advanced features. Use this guided course and follow along.
Start CourseGit Tips & Tricks
Discover useful Git tips and tricks to improve your workflow and productivity. Learn practical techniques that will make you more efficient with Git.
Start CourseGit Init
Learn how to initialize a new Git repository. This lesson will guide you through creating a new directory, initializing a new Git repository, and configuring your Git identity.
Start LessonGit Add
Learn how to stage changes for commit using git add. This lesson covers adding individual files, multiple files, and using wildcards to stage changes efficiently.
Start LessonGit Commit
Learn the basics of staging and committing changes in Git. This lesson will guide you through checking status, adding files, and making your first commit.
Start LessonGit Reset
Learn how to undo changes in Git using different reset modes. This lesson covers soft, mixed, and hard resets with practical examples.
Start LessonGit Partial Add
Learn how to interactively stage parts of a file. This lesson covers selectively staging parts of files, reviewing changes before staging, and managing complex commits with precision.
Start LessonGit Stash
Learn how to temporarily save your work using git stash. This essential feature allows you to quickly switch branches or pull changes without committing your current work.
Start LessonGit Amend
Learn how to modify the most recent commit using git commit --amend. This lesson covers changing commit messages, adding forgotten files, and understanding when it's safe to amend commits.
Start LessonGit Blame
Check who is responsible for a change in your code. Learn how to use git blame to track the origin of lines in your code. This lesson covers basic blame usage, the powerful -C -C -C options for tracking moved code, and advanced blame techniques.
Start LessonGit Branch
Learn the basics of branching in Git. This lesson will guide you through creating a new branch, checking out a branch, and merging a branch.
Start LessonMerge Strategies
Understand the different Git merge modes and in which situation Git uses which one. Learn about different merge strategies and how to control merge behavior.
Start LessonGit Rebase
Learn how to use git rebase to maintain a clean, linear history. This lesson covers rebasing feature branches onto main, fast-forward merges, and the benefits of rebasing over merging.
Start LessonGit Interactive Rebase
Learn how to use interactive rebase to maintain a clean history. This lesson covers interactively rebasing branches, how to not clutter the history with commits without any value by them selves.
Start LessonAutosquashing
Learn how to use git commit --fixup and --squash to create commits that can be automatically combined with previous commits during interactive rebase. This helps maintain a clean commit history.
Start LessonGit Worktree
Learn how to work with multiple branches at the same time using git worktree. This powerful feature allows you to have multiple working directories for the same repository, making it easy to switch between branches, even if you have local changes.
Start LessonGit Clone
Learn how to clone an existing repository from a remote source. This lesson covers cloning repositories, understanding the clone process, and exploring the cloned repository structure.
Start LessonGit Pull
Learn how to fetch and merge changes from a remote repository. This lesson covers pulling updates, understanding the pull process, and handling conflicts.
Start LessonGit Remotes
Learn how to connect your local repository to a remote repository and configure branch tracking. This lesson covers adding remotes, viewing configuration, and setting up branch tracking.
Start LessonGit Push
Learn how to push your local commits to a remote repository. This lesson covers adding a remote origin and pushing your changes to GitHub.
Start LessonMultiple Git Remotes
Learn how to work with multiple remotes to keep a fork synchronized with the upstream repository. This lesson covers adding upstream remotes, fetching changes, and keeping your fork up to date.
Start LessonGit Config
Learn the difference between local and global Git configuration and when to use which one. You will learn how to view and set configuration settings for your Git repositories.
Start LessonConditional Configs
Learn how to use conditional Git configuration based on directory paths. This lesson covers includeIf directives, work vs personal configurations.
Start LessonGit Aliases
Learn how to create custom Git aliases to speed up your workflow. This lesson covers setting up aliases for common commands and best practices for alias management.
Start LessonGlobal Exclude File
Learn how to set up a global gitignore file to exclude common IDE directories and files across all your Git repositories. This lesson covers creating core.excludefile and taking responsibility managing you local environment settings.
Start LessonBetter default settings
Essential Git configuration settings that every developer should know and use. This lesson covers config settings that should be the deault but sadly aren't yet.
Start LessonTop 10 Aliases
My essential Git aliases that may help you to speed up your workflow. This lesson covers my most useful Git aliases for productivity and workflow optimization.
Start LessonGit Objects
Git stores everything in git objects. Lear about the different kind of objects and their responsibilities.
Start LessonGit HEAD
Learn how Git uses the HEAD pointer and head refs to track the current state of the repository.
Start LessonGit Bisect
Learn how to use git bisect to efficiently find the commit that introduced a bug using binary search. This lesson covers starting a bisect session, marking commits as good or bad, and automating the process.
Start Lesson