# A Practical Guide to Git Modify through: [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/jmrecodes/git-guide) Welcome to this comprehensive guide to Git! Whether you are a beginner just starting your journey in version control or an experienced developer looking to sharpen your skills, this guide is for you. My goal is to provide a simplified, streamlined, but complete walkthrough of Git's fundamentals and its more advanced features. We'll cover everything from your first commit to complex history manipulation. ## Table of Contents 1. [**Introduction to Git**](https://hackmd.io/@jmrecodes/ry-5too7gx) * What is Git? * Why is Version Control Important? * A Quick Look at Git's Philosophy 2. [**Getting Started**](https://hackmd.io/@jmrecodes/Hynqtos7ge) * Installing Git * First-Time Git Configuration (`git config`) * Creating Your First Repository (`git init`) 3. [**Basic Commands: The Day-to-Day Workflow**](https://hackmd.io/@jmrecodes/H1FiYji7xl) * The Three States: Working Directory, Staging Area, and Repository * Checking Status (`git status`) * Adding Files to the Staging Area (`git add`) * Committing Changes (`git commit`) * Viewing Commit History (`git log`) * Ignoring Files (`.gitignore`) 4. [**Branching and Merging**](https://hackmd.io/@jmrecodes/ByLhtoimee) * What is a Branch? * Creating and Switching Branches (`git branch`, `git checkout`, `git switch`) * Merging Branches (`git merge`) * Resolving Merge Conflicts 5. [**Working with Remotes**](https://hackmd.io/@jmrecodes/S146Fio7eg) * Understanding Remotes * Adding a Remote Repository (`git remote add`) * Fetching and Pulling from Remotes (`git fetch`, `git pull`) * Pushing to Remotes (`git push`) 6. [**Advanced Topics: Rewriting History & More**](https://hackmd.io/@jmrecodes/r1VAYoimel) * Interactive Rebase (`git rebase -i`) * Cherry Picking Commits (`git cherry-pick`) * Resetting Commits (`git reset`) * A practical example combining `cherry-pick` and `reset` --- Ready to dive in? Start with the [Introduction to Git](https://hackmd.io/@jmrecodes/ry-5too7gx).