
Develop proficiency in Git and GitHub to manage source code, collaborate effectively, and navigate a rapid cycle of development, deployment, and updates for beginners and experienced users.
Build a solid foundation in git by exploring basics, data storage, and the internal workings of command execution. Master git structure and operations through practical commands and visual helpers.
Explore core Git concepts, usage, collaboration methods, and advanced features through practical exercises and quizzes, building foundational efficiency for professional code management.
Explore how version control systems evolved and examine git’s unique features, clarifying what kind of system git is and the advantages of using git.
Explore the evolution from manual versioning to local, centralized, and distributed version control, highlighting local and remote repositories, conflict handling, and Git's advantages for collaboration.
Explore git's fast, distributed version control with a snapshot model, SHA-1 based integrity checks, and a staging area, and learn terminal and GUI workflows for robust Linux-style collaboration.
Explore the evolution of version control systems from local to centralized to distributed. Discover git’s features, performance, security, and reliability, plus the option to use terminal commands or apps.
Explore the concept of git repositories, learn the structure of a repository, the role of the staging area, and the various file stages git manages.
A Git repository comprises the working directory, the staging area (index), and the object database, where changes are modified, staged, and committed as a commit object.
Git tracks files in the working directory as tracked or untracked and as unmodified or modified, then uses the index for commits.
Explore how git stores changes step by step through the index, blobs, and the object database, and see how making and committing edits creates new blobs, trees, and commits.
Explore how Git history uses a directed acyclic graph to connect commits and parents, avoiding cycles. Visualize nodes, trees, and blobs, with arrows showing direction and data stored as dag.
Practice creating a git repository in the terminal, initialize with git init, add files to the staging area with git add, commit changes, and review status, diff, and log.
Create a local repository in Sourcetree, add files to the staging area, and commit changes with descriptive messages, then review the commit history and manage master versus main branches.
Explore Git repository structure, including the working directory, index, and object database, and learn how blobs and trees are created and how tracked, untracked, modified, and staged files are managed.
Explore how git stores data and understand the data and snapshot models, hash functions, and how commit hashes are generated.
Explore the Delta model for version control, storing data by saving only modified parts to create new versions, and learn how checkout sequentially reconstructs a state by applying differences.
Explain how the snapshot model stores full repository content at each version, unlike the delta model that stores only changes, and how hashes identify objects for restoration.
Explain how a hash function maps arbitrary-length input to a fixed 40-character hash value, with small changes producing entirely different hashes and sha-1 securing data integrity in git.
See how the snapshot model saves each version by linking blobs, trees, and commits, enabling fast checkout and storage efficiency through compression and pack files.
Explore how Git creates a commit object containing the tree, parent, author, timestamp, and commit message, and how the commit hash is generated by hashing the commit content with sha-1.
Explore how git stores data using delta and snapshot models, and see how commits generate a hash from their contents as the commit's identifier.
Learn how Git stores data by exploring the four object types—blobs, trees, commits, and tags—and inspect their contents in the terminal to understand Git's data storage.
Learn how Git stores data using blob, tree, and commit objects, stored in the object directory as compressed files identified by hashes, illustrated with an example using hello.c and foo.html.
Learn how blobs store file content, how trees hold names and permissions, how commits link these objects to restore a repository state, and how tags reference commits by hash.
Explain how git uses sha1-based content-based hashes as identifiers for blobs, trees, commits, and tags in a content-addressable file system, generated from object content and header data.
Explore how git stores data as objects—commits, trees, and blobs—using hashes, and view their contents in the terminal with git cat-file -p, tracing parent-child relationships.
Explore viewing tag objects in the terminal using the git tag command and the git file command, confirm a tag refers to a commit, and understand how git stores objects.
Learn to generate a git object hash from its content by using shasum and inspecting commit details, showing that changing content yields a different hash.
Explore how Git stores data with blob, tree, comet, and tag objects. Blobs hold file content, trees represent directories, and comets reference trees and carry parents, author, committer, and messages.
Discover how branches create independent workspaces for parallel tasks like features, refactoring, and bug fixes, and learn what a branch is, how it is implemented, and the law of health.
Learn why branches in Git enable independent development, creating develop and hotfix branches from master to isolate features, bug fixes, and urgent deployments.
Understand how a branch points to a specific commit, with commits forming history and snapshots represented by graphs and hashes, as master references the current commit.
Git stores each branch as a tiny file in the .git directory that points to a commit hash; head identifies the current branch, such as master or subscriptions.
See how a new commit updates the active branch, turning it into a moving pointer that tracks commits in Git; branches like master or subscriptions can be renamed or deleted.
Switching branches updates the working directory to the state of the active branch, such as from master to subscription, and the working directory mirrors the current branch.
Practice managing branches in the terminal with git log, git branch, and git checkout. Branches are movable pointers to commits that provide independent development environments for isolated changes.
Practice the merge command in source tree by merging master with channels using fast forward, then merging playlist into channels with a three-way merge, including commit messages.
Learn how git branches enable independent work by using named references to commits, with branches pointing to the latest commits and enabling renaming or deleting.
Learn how to merge branches in Git, understand the types and functionalities of merge commands, and apply merge in two different ways.
Merge changes from one branch into another by using a search branch from develop and then merging back, noting uncommitted changes and fast-forward versus three-way merging.
Explore fast forward merge, updating the branch pointer to the new commit hash to include commits such as C5, C6, and C7 into develop. It requires a straight-line history.
When a fast-forward merge isn’t possible, Git performs a three way merge using a merge commit that combines the common ancestor with the latest commits from each branch.
Learn how Git handles merges and resolves conflicts when both branches modify the same location in a file. Review changes from both branches and complete the merge by resolving conflicts.
Practice git merge commands in the terminal, review commit history with git log and graph, and perform fast-forward and three-way merges across branches such as master, channels, playlist, and search.
Practice branching concepts by inspecting repository status and commit history, explore seven branches, and learn to create, switch, rename, and delete branches in SourceTree.
Learn to merge branches by keeping the working directory clean and committing or stashing changes, then apply fast forward or three-way merges, resolving conflicts when needed.
Learn to use git rebase to combine branches cleanly or reorganize commits, including interactive rebase. Understand what rebase is, how it works, and how to apply rebase commands.
Learn how to use rebase to keep commit history clean and linear while integrating feature branches into develop, offering a clearer alternative to merging.
Rebase recreates commits on a new base by generating patches for each feature-branch commit and applying them to the develop branch, updating hashes and parents.
Rebase carefully by only rebasing commits that have not been shared in the remote, to avoid changing commit hashes and causing conflicts, and maintain a clean history.
Compare rebase and merge, focusing on how merge leaves the existing commit history intact. See how rebase replays commits onto the target branch, and consider interactive rebase as a method.
Use interactive rebase to modify commit history by changing messages and reordering commits. Squash, split, and delete commits to keep the history clean before pushing to the remote.
Practice using the rebase command in the terminal to integrate playlist and search into master, creating a linear history. Use interactive rebase to squash commits and review with git show.
Practice rebasing branches onto master in SourceTree, creating a linear history by rebasing playlist then search, and using interactive rebasing to squash commits.
Rebase recreates commits from a specific base and lets you edit messages, reorder, combine, or split commits; use interactive rebase to modify history on unpushed commits.
Learn to leverage changes in git by exploring commands for undoing changes, understanding how each command works, and how to use each command.
Learn how git reset moves the branch to a selected commit, discarding later commits with soft, mixed, or hard options, and how reflog recovers them.
Learn how git revert creates a new commit that undoes changes from a chosen commit, applying to any point in history, not just the latest.
Compare Git reset and revert to decide when to undo changes. Reset removes unshared commits from history; revert preserves history and handles shared commits.
Practice resetting and reverting changes in the terminal with Git reset (soft, mixed, hard) and Git revert, manage the working directory, and review commit history.
Practice using reset and revert commands in SourceTree to undo changes across branches, choosing soft, mixed, or hard resets and discarding or reintroducing commits.
Learn to undo changes in Git with reset and revert, explore soft, mixed, and hard options, and know when to apply reset for unpushed commits and revert for pushed ones.
1. This course helps build a solid foundation.
If you don’t have a solid understanding of Git’s basics, you may lack confidence in using it, regardless of how long you’ve been using Git or how many commands you know. This course not only covers how to use Git commands but also explains how Git stores data and operates internally when commands are executed. By the end of the course, you will have a clear understanding of Git’s structure and functionality, boosting your confidence in using Git effectively.
2. This course is practical.
Git offers a wide range of commands, but you don’t need to know them all. Instead, it’s important to focus on the commands that are frequently used in practice. This course offers practical commands and usage techniques based on real-world experience and research. By mastering the content of this course, you’ll acquire all the essential knowledge needed for effective, practical use of Git.
3. This course simplifies core concepts effectively.
The course includes content from over 20 Git books, lectures by Linus Torvalds, the creator of Git, books and lectures by Scott Chacon, co-founder of GitHub, and various Git development documents. To make the core concepts of this extensive knowledge easily understandable, we have incorporated numerous visual aids
4. This course offers a variety of lectures needed for learning
Knowledge becomes truly yours only after you make it your own through practice. This course provides pre/post quizzes and exercises. Use the exercises to solidify what you've learned. By following this process, you will surely understand how Git works and how to use it.
If you have been looking for an easy and comprehensive course, look no further. This is the course you have been searching for. Instead of spending over $1,000 to buy more than 20 books used to create this course, or investing the 5 years I spent to develop it, I hope you can gain all the knowledge about Git at a much lower cost and with less time.
The time you invest in learning Git will become a solid foundation, enabling you to quickly and accurately resolve various code management issues in your work.