
Access Notion-based course materials with theory notes, code snippets, and commands for each lecture; includes a cheat sheet and hands-on sections on branching, merging, and git history.
Discover how Git serves as a local version control system that tracks changes, allows undoing edits, and enables collaborative development, while GitHub provides cloud hosting and review workflows.
Install git on macOS or Windows, verify with git-version, and use Homebrew or standalone installers to complete setup and PATH registration.
Learn how to sign up for a GitHub account, navigate github.com, and access repositories, laying the foundation to start with git locally before moving to GitHub.
Install visual studio code, a free editor with a built-in terminal for git commands, and use it throughout this course, downloaded from code.visualstudio.com for macOS or Windows.
Configure git globally by setting your user name and email, and set the default branch to main. Verify these settings with git config --global --list.
Initialize your first repository, stage changes, and commit to start the full local git workflow, then read history, manage the staging area, and resolve merge conflicts with merge or rebase.
Understand the local git workflow by exploring the workspace, staging area, and local repository, and learn how to move changes with git add and save snapshots with git commit.
Stage changes in git, move files to the staging area, then commit with a descriptive message as you create and track PythonScript1.py.
View commit history with git log, which shows each commit's hash, author, date, and message. Use the compact one-line view with -- and the first seven digits.
Demonstrate unstaging files from the staging area with git restore --staged, while managing staged changes, untracked files, and simple commits.
Learn how the .gitignore file helps you keep sensitive files and clutter out of your repository by specifying files, folders, and patterns to ignore in the root of your project.
Explore hands-on branching with git switch to create a chore branch, remove unused files, commit changes, merge back into main via a fast forward merge, and delete the branch.
Demonstrate how fast-forward merges differ from merge commits by creating two branches, one clean fast-forward and one requiring a merge commit with vim editor.
Learn to resolve Git merge conflicts by manually editing conflicting calculator.py and main.py changes from two feature branches, using conflict markers, staging, and committing the final merged code.
Explore resolving merge conflicts by first merging main into the feature branch to keep main clean, then rebasing to replay commits on top of main for a clean, fast-forward history.
Understand that git's default branch is a placeholder until the first commit; branches are pointers to commits. Recreate main with git switch -c main if you left it uncommitted.
Explore Udemy labs in this course, learning how the video, practice, and split views work, with a browser-based Linux terminal, a working directory, and lab tasks linked by video timestamps.
Connect your local repository to GitHub, push, pull, fetch, and clone, while learning branch policies, pull requests, forking, and a well-structured GitHub workflow.
Learn how to connect your local Git repository to GitHub for remote repositories. Collaborate, clone, branch, push changes, back up your code, and share your work with the world.
Connect your local repository to a new GitHub repository, set the remote to origin, and push your commits to main to synchronize local and remote projects.
Clone a remote repository to your local machine to create a full copy with files and commit history, using https, ssh, or the GitHub CLI.
Explore GitHub branch policies that protect the default branch and enforce pull requests, using branch rule sets to block deletions of feature branches and require PR approvals.
Learn how to create and review pull requests, compare branches with diffs, and merge changes safely while coordinating reviews and branch management on GitHub.
Forking a repository creates your own copy on GitHub that stays connected to the original, letting you push changes, create branches, and pull updates via pull requests.
Explore a typical GitHub repository structure with root directories, folders like fastapi, tests, docs, scripts, and key files such as pyproject.toml, gitignore, and readme.md, the front page of the project.
Learn a real collaboration workflow by forking a repo, cloning it, creating a feature branch, adding a personal markdown file, and submitting pull requests to the fork and original repository.
Gain confidence with git by mastering recovery workflows: discard changes, stash work, amend or revert commits, undo commits, inspect changes, rename branches, and practice in a role play and lab.
Discover how to stash uncommitted changes to switch branches without losing work, using git stash, git stash pop, apply, drop, and clear across multiple stashes.
Explore git reset and git reflog, compare soft, mixed, and hard resets, and learn how reflog recovers commits; understand when resets affect local history versus remote pushes.
Rename a git branch with the M flag, for the current or another branch, and if already pushed, push the renamed branch and delete the old remote branch.
Explore how teams use branches in practice, examine the most common branching strategies, and compare their trade-offs.
Explore GitHub Flow, Git Flow, trunk-based development, and GitLab Flow, and learn how main and feature branches, pull requests, and environment stages enable reliable deployments.
Master the full git workflow from repo creation to branching and merging, and collaborate on GitHub with push, pull, clone, and pull requests protected by branch policies.
Master Git and GitHub from the ground up. This hands on course takes complete beginners all the way to confident collaborators, with no prior command line, Git, or GitHub experience required.
What you will learn
Install and configure Git, VS Code, and GitHub on Windows, macOS, or Linux
Build a full local workflow: init, stage, commit, and read history with git log
Write a proper .gitignore and manage the staging area like a pro
Master branching and merging through three guided, hands on walkthroughs
Resolve merge conflicts using both merge and rebase without panic
Work with remote repositories: clone, push, pull, and fetch
Use the GitHub CLI, raise pull requests, fork projects, and configure branch policies
Walk through a complete README workflow end to end
Fix mistakes safely with stash, amend, revert, reset, and diff
Choose the right branching strategy for your team
Why this course works
Short theory lectures are paired with code along exercises and practice labs, so you are always applying what you learn in your own terminal. Every command is taught in the context of a real workflow, not as isolated trivia.
What you walk away with
A working Git setup, a published GitHub profile, a downloadable cheat sheet covering every command in the course, hands on labs, and a certificate of completion.
Who this is for
Aspiring developers, data analysts and scientists, bootcamp students, and self taught coders who want to close the gaps in their workflow and stop fearing the terminal.
Requirements
A computer, an internet connection, and a free GitHub account (we will set one up together). That's it.
Enrol now and finish the course ready to contribute to any modern codebase.