Intro What is Git Using Git Installing Git Configuring Git Creating Snapshots Initializing a Repository Git Workflow Staging Files Committing Changes Committing Best Practices Skipping the Staging Area Removing Files Renaming or Moving Files Ignoring Files Short Status Viewing Staged and Unstaged Changes Visual Diff Tools Viewing History Viewing a Commit Unstaging Files Discarding Local Changes Restoring a File to an Earlier Version Browsing History Viewing the History Filtering the History Formatting the Log Output Aliases Viewing a Commit Viewing the Changes Across Commits Checking Out a Commit Finding Bugs Using Bisect Finding Contributors Using Shortlog Viewing the History of a File Restoring a Deleting File Finding the Author of Line Using Blame Tagging Branching What are Branches Working with Branches Comparing Branches Stashing Merging Fast-forward Merges Three-way Merges Viewing Merged and Unmerged Branches Merge Conflicts Graphical Merge Tools Aborting a Merge Undoing a Faulty Merge Squash Merging Rebasing Cherry Picking Picking a File from Another Branch Collaboration Workflows Creating a GitHub Repository Adding Collaborators Cloning a Repository Fetching Pulling Pushing Storing Credentials Sharing Tags Releases Sharing Branches Collaboration Workflow Pull Requests Resolving Conflicts