- Introduction - What is Git? - [[GET:Understanding version control]] - [[GET:The history of Git]] - [[GET:About distributed version control]] - [[GET:Who should use Git]] - Installing Git - [[GET:Installing Git on a Mac]] - [[GET:Configuring Git]] - [[GET:Exploring Git auto-completion]] - [[GET:Using Git help]] - Getting Started - [[GET:Initializing a repository]] - [[GET:Understanding where Git files are stored]] - [[GET:Performing your first commit]] - [[GET:Writing commit messages]] - [[GET:Viewing the commit log]] - Git Concepts and Architecture - [[GET:Exploring the three-trees architecture]] - [[GET:The Git workflow]] - [[GET:Using hash values (SHA-1)]] - [[GET:Working with the HEAD pointer]] - Making Changes to Files - [[GET:Adding files]] - [[GET:Editing files]] - [[GET:Viewing changes with diff]] - [[GET:Viewing only staged changes]] - [[GET:Deleting files]] - [[GET:Moving and renaming files]] - Using Git with a Real Project - [[GET:Initializing Git]] - [[GET:Edits]] - Undoing Changes - [[GET:Undoing working directory changes]] - [[GET:Unstaging files]] - [[GET:Amending commits]] - [[GET:Retrieving old versions]] - [[GET:Reverting a commit]] - [[GET:Using reset to undo commits]] - [[GET:Demonstrating a soft reset]] - [[GET:Demonstrating a mixed reset]] - [[GET:Demonstrating a hard reset]] - [[GET:Removing untracked files]] - Ignoring Files - [[GET:Using .gitignore files]] - [[GET:Understanding what to ignore]] - [[GET:Ignoring files globally]] - [[GET:Ignoring tracked files]] - [[GET:Tracking empty directories]] - Navigating the Commit Tree - [[GET:Referencing commits]] - [[GET:Exploring tree listings]] - [[GET:Getting more from the commit log]] - [[GET:Viewing commits]] - [[GET:Comparing commits]] - Branching - [[GET:Branching overview]] - [[GET:Viewing and creating branches]] - [[GET:Switching branches]] - [[GET:Creating and switching branches]] - [[GET:Switching branches with uncommitted changes]] - [[GET:Comparing branches]] - [[GET:Renaming branches]] - [[GET:Deleting branches]] - [[GET:Configuring the command prompt to show the branch]] - Merging Branches - [[GET:Merging code]] - [[GET:Using fast-forward merge vs. true merge]] - [[GET:Merging conflicts]] - [[GET:Resolving merge conflicts]] - [[GET:Exploring strategies to reduce merge conflicts]] - Stashing Changes - [[GET:Saving changes in the stash]] - [[GET:Viewing stashed changes]] - [[GET:Retrieving stashed changes]] - [[GET:Deleting stashed changes]] - Remotes - [[GET:Using local and remote repositories]] - [[GET:Setting up a GitHub account]] - [[GET:Adding a remote repository]] - [[GET:Creating a remote branch]] - [[GET:Cloning a remote repository]] - [[GET:Tracking remote branches]] - [[GET:Pushing changes to a remote repository]] - [[GET:Fetching changes from a remote repository]] - [[GET:Merging in fetched changes]] - [[GET:Checking out remote branches]] - [[GET:Pushing to an updated remote branch]] - [[GET:Deleting a remote branch]] - [[GET:Enabling collaboration]] - [[GET:A collaboration workflow]] - Tools and Next Steps - [[GET:Setting up aliases for common commands]] - [[GET:Using SSH keys for remote login]] - [[GET:Exploring integrated development environments]] - [[GET:Exploring graphical user interfaces]] - [[GET:Understanding Git hosting]] - Conclusion