
Explore Git and GitHub as a free, open source distributed version control system, learn how it protects work, enables collaboration, and fosters productive, practical workflows with best practices.
Explore the basics of using a terminal and the bash shell to run commands, manage files and directories, and script simple automation with echo, cat, mkdir, rm, and redirection.
Practice exercise one walks you through creating a directory, initializing a git repository, staging files, committing changes, configuring user details, and verifying history with git log.
Explore how git tracks file changes with status and log outputs, including untracked and modified files, and learn to stage selective changes for commit and clean up boilerplate.
compare git commits to bank transactions to explain incremental state changes; commits have id, date, time, description, and amount, and a repository's current state is derived via parent pointers.
Learn to review git diffs using graphical user interface clients inside IDEs like Android Studio, comparing commits and viewing before and after file changes.
Explore solving exercise two by inspecting unit four’s history with Git. Learn to view commit logs, compare diffs using Git diff or Git show, and understand the diff syntax.
Learn how to remove, move, and rename files in a git repository using git rm, git move, and staged commits, while git automatically tracks renames.
Learn to remove untracked files and directories with git clean, using dry-run (-n), force (-f), and directory (-d) options, and optionally remove ignored files with -x and -X.
Learn how to reset a repository to a specific commit using git reset, choose soft or hard options, and inspect the changes with git log and git status.
Learn how git commits act like saves in video games, enabling longer multi-session work, rollback to earlier points, and exploring alternative implementations for a project.
Explore the most important git config options to boost productivity and efficiency, focusing on practical configurations rather than exhaustive coverage of git's advanced capabilities.
Explore how git configuration works across global and repository levels, locate the global config in your home directory and the repository config in .git, and edit them with git config.
Explore how git branches create alternative histories to isolate bug fixes and new features, merge changes, and preserve both hotfixes and future work.
Demonstrate creating and checking out new branches with git checkout, including naming a hotfix branch, and inspecting branch state with status and log.
Resolve merge conflicts using a graphical user interface in Android Studio, merging master and hotfix changes, then test and commit the final merged code.
Resolve merge conflicts with a plain text editor by reading git markers, understanding your side and their side, and then test and commit the merged master after merging hotfix.
Merge multiple branches into a merge branch, resolve a conflict with a git tool, and align questions in the intended order. Finally test the app and fast-forward merge into master.
Compare merging and rebasing, noting history preservation, merge commits, and potential conflicts. Decide on a team approach and apply your chosen strategy consistently.
Explore git remotes to back up your work securely with remote repositories on external drives or over the internet, and enable collaboration among developers.
Use git pull to fetch and merge updates from origin master into your local master. Compare git pull with sequential git fetch and git merge to see the same result.
Add a new remote and configure your local master to track the backup remote master, then push with confidence while understanding why bare repositories matter.
Understand bare repositories, their use as backups, and how to clone, set remotes, and push to backup repositories while working with the work tree and dot git.
Learn to clone the Kitces app, add a backup remote, and set master tracking; create and push a new branch with a file, then verify the remote branch.
Collaborate with a central repository using Git remotes and multiple developers. Push merged changes, resolve conflicts, and keep local and origin branches synchronized.
Explore the GitHub interface to sign up or sign in, browse repositories, view readme files, and learn how issues, pull requests, and branches support collaboration.
Sign up for a GitHub account to complete exercise seven, or skip the step if you already have one, then proceed to the next lecture.
Clone a private project from GitHub with git clone using ssh authentication, then configure your user name and email and verify origin master.
Push a new branch to GitHub and track it remotely, switch branches locally, and note that pull requests will be covered next.
Learn how pull requests on GitHub enable code review before merging branches into master, compare diffs, resolve conflicts, and choose merge strategies such as squash and merge, or rebase.
Create a new local branch, make changes, commit, and push to your GitHub repository; open a pull request to master or your mainline branch, then leave comments and merge.
Learn how git protects your work, organizes development into steps, and enables collaboration through branches, repositories, merging, and rebasing, while embracing a command-line workflow and seeking help when needed.
Git is the most popular Version Control System in the world. It's used by millions of software developers to manage their source code, back up their progress and collaborate with others. All these factors make Git an essential tool for all software developers, so, sooner or later, you'll need to learn Git!
Most importantly, when bad things happen in your code, Git will be there to save your day.
In this course, you'll learn how to use Git in the context of a real software project. We'll start with an empty directory and conclude when all project's files are hosted in a remote repository on GitHub.
Topics covered in this course include:
Why you need Git
Basic and advanced Git commands
Custom configurations and shortcuts
Backing up your work
Reverting source code changes
Collaborating with other developers
and more...
This course is tailored for software developers who use Git professionally, on a daily basis. The structure of the course aims to teach Git in steps, one new concept at a time. We'll use a real application as a tutorial project, so you'll get a chance to learn not just Git itself, but also the associated workflows and best practices.
By the end of this course, you'll discover the full power of Git and won't be willing to work without it ever again!
So, if you need to learn Git for the first time, or want to improve your existing Git skills, this course is perfect for you.