
Master git fundamentals for source control with command-line workflows for local and remote repositories. Explore branching, merging, and stashing, plus a gui option with git extensions.
Explore how version control records file changes over time, from manual copy techniques to distributed systems like git, enabling local commits and remote pushes for collaborative development.
Install git on Windows by downloading the 64-bit installer, selecting a preferred editor, and configuring path and line ending options for a smooth setup.
Master the Windows command prompt and file system basics, including navigating directories, switching drives, and using core commands like cd, dir, mkdir, copy, rename, and move for Git workflows.
Explore the bash shell and git bash basics, highlighting differences between Windows and Unix file systems, using forward slashes, and navigation commands like cd and ls.
Initiate a local git repository with git init, explore the .git folder, and track changes by adding files, staging, and committing on the main branch to build a repository history.
Configure your global git identity by setting your name and email so every commit records the correct author, and learn to view and edit git config settings.
Stage changes deliberately with git add to move modifications into the staging area, then commit; learn how status, diff, and interactive add help track unstaged and untracked files.
Learn to commit staged changes with git commit, using -m or the editor, write meaningful messages (present tense or semantic), and keep logical, separate commits.
Amend a recent commit to include overlooked changes by running git commit --amend after staging with git add, and avoid amending commits already pushed to a remote.
Explore the anatomy of a git commit, including the hash, author, date, and patch, and learn how git log, git show, and head pointers reveal sequential history and changes.
Master git reset to unstage changes and manage your working tree. Learn soft, mixed, and hard resets, restore staged files, and return to the latest commit on head.
Learn how to clone a remote GitHub repository, set up a private project with a dot git ignore, commit changes, and push and pull to synchronize with origin.
Explore the simple case of git pushing and pulling, using clones and commits to align local main with origin.
Explore merging two divergent local changes using the merge method, handling non-conflicting updates from local one and local two, and creating a merge commit after pulling.
Compare the rebase and merge methods in git, demonstrate fetch and rebase to replay local commits on the remote history, and discuss when to rebase versus merge.
Illustrate merging with conflicts by simulating concurrent edits, resolving them with a merge tool, selecting lines from both local changes and the remote, then committing and pushing the merged main.
The rebasing with conflicts lecture shows conflicts are resolved locally, not on the remote, so push and commit often and then fetch, rebase, and resolve conflicts manually.
Learn how git stash lets you set aside uncommitted changes to pull from remote safely. Use stash push and stash pop to reapply changes after updating, handling conflicts when needed.
Explore Git branching by creating, fetching, checking out, and merging feature branches with main, including push, pull, and remote origin workflows, and learn to keep branches short-lived.
Learn how Git tags mark a specific commit with a version, including lightweight and annotated options, and how to push them with git push origin --tags.
Install git extensions, a Windows GUI for managing git commands and repositories that mirrors command output. Download the MSI or ZIP and install for all users, enabling Windows integration.
Clone a repository with git extensions and explore its history, branches, submodules, and diffs. Navigate commits, tags, and the file tree to understand the repository structure and workflow.
Explore the pull, fetch, and push workflow using Git Extensions, including rebase versus merge, staging changes, and committing with descriptive messages, then push to origin/main.
Delve into advanced git commands and settings, including amend, stash management, branching, cherry-pick, bisect, patches, submodules, sparse checkout, and global versus local settings via Git Extensions.
Learn how to merge from a remote with and without conflicts using git extensions, including handling merge conflicts, using pull and push workflows, and basic conflict resolution tools.
Learn how to stash local changes, perform a pull with merge or rebase, and pop the stash to resolve conflicts, while managing stash entries.
Master branching and merging in git by creating and checking out local branches from remote origins, tracking updates, committing and pushing changes, and merging feature branches into main.
Git is the most popular source control tool in the world today, so knowing Git is an essential skill for just about every developer. This course covers the fundamentals of Git - what it's for, how it works, and how to use it in your every day work.
We cover all of the day to day usage of Git, from cloning, to committing, to pushing and pulling, and even branching and merging (and the dreaded merge conflict). The course is aimed at developers who are coming to Git for the first time so no prior knowledge is necessary, but it's also useful for those of you who have been using Git and are wanting to gain a slightly better understanding of how things are working and how to think about what Git is doing so that you can troubleshoot when it throws surprises your way.
In the interest of preparing you for day to day usage, we also cover using Git Extensions, a cross-platform third-party UI built on top of the Git command line that you can use to be more productive in your daily work.
For each section we provide practical video demonstrations of each activity, diagrams showing how what we've done has affected the repository, and also some exercises for you to do in order to practice for yourself.
This course should get you up and running with using Git in your daily work, and provide you with enough understanding of the underlying systems and concepts that you are able to utilize the power Git provides.