Git Version Control System

  1. Git Fundamentals
    1. Overview of Git
      1. What is Git
        1. Distributed Version Control System
          1. Open Source Project
            1. Command-Line Tool
            2. Use Cases for Git
              1. Software Development
                1. Documentation Management
                  1. Configuration Management
                    1. Creative Projects
                  2. History of Git
                    1. Origins and Development
                      1. Linux Kernel Development Needs
                        1. BitKeeper Controversy
                          1. Initial Release Timeline
                          2. Key Contributors
                            1. Linus Torvalds
                              1. Junio Hamano
                                1. Core Development Team
                                2. Evolution of Git
                                  1. Major Version Milestones
                                    1. Feature Development
                                      1. Adoption Growth
                                    2. Git Design Philosophy
                                      1. Snapshots Not Differences
                                        1. Complete File States
                                          1. Efficient Storage
                                            1. Fast Operations
                                            2. Local Operations and Performance
                                              1. Offline Capabilities
                                                1. Speed Advantages
                                                  1. Network Independence
                                                  2. Data Integrity and Security
                                                    1. SHA-1 Checksums
                                                      1. Corruption Detection
                                                        1. Tamper Evidence
                                                        2. Distributed Collaboration
                                                          1. No Central Authority
                                                            1. Flexible Workflows
                                                              1. Redundant Storage
                                                            2. The Three States of Files
                                                              1. Modified State
                                                                1. Working Directory Changes
                                                                  1. Unsaved Modifications
                                                                    1. File Status Indicators
                                                                    2. Staged State
                                                                      1. Index Preparation
                                                                        1. Commit Candidates
                                                                          1. Selective Staging
                                                                          2. Committed State
                                                                            1. Repository Storage
                                                                              1. Permanent History
                                                                                1. Snapshot Creation
                                                                                2. Transitioning Between States
                                                                                  1. State Change Commands
                                                                                    1. Workflow Patterns
                                                                                      1. Best Practices
                                                                                    2. The Three Main Sections of a Git Project
                                                                                      1. The Working Directory
                                                                                        1. Role and Function
                                                                                          1. Active File Editing
                                                                                            1. Current Project State
                                                                                              1. User Workspace
                                                                                              2. File Status in Working Directory
                                                                                                1. Tracked Files
                                                                                                  1. Untracked Files
                                                                                                    1. Modified Files
                                                                                                      1. Ignored Files
                                                                                                    2. The Staging Area
                                                                                                      1. Purpose of the Staging Area
                                                                                                        1. Commit Preparation
                                                                                                          1. Change Selection
                                                                                                            1. Quality Control
                                                                                                            2. Staging vs Committing
                                                                                                              1. Two-Step Process
                                                                                                                1. Granular Control
                                                                                                                  1. Review Opportunities
                                                                                                                2. The Git Directory
                                                                                                                  1. Structure of the .git Directory
                                                                                                                    1. Objects Database
                                                                                                                      1. References
                                                                                                                        1. Configuration Files
                                                                                                                          1. Hooks Directory
                                                                                                                          2. Storing History and Metadata
                                                                                                                            1. Commit Objects
                                                                                                                              1. Tree Objects
                                                                                                                                1. Blob Objects
                                                                                                                                  1. Tag Objects