Continuous Integration and Continuous Delivery (CI/CD)

  1. Foundations of Version Control
    1. Version Control Systems Overview
      1. Role of VCS in CI/CD
        1. Source Code Management
          1. Collaboration and Traceability
            1. Change History
            2. Centralized vs Distributed VCS
              1. Characteristics of Centralized VCS
                1. Characteristics of Distributed VCS
                  1. Pros and Cons Comparison
                2. Git Fundamentals
                  1. Git Architecture
                    1. Repository Structure
                      1. Working Directory
                        1. Staging Area
                          1. Local Repository
                          2. Basic Git Operations
                            1. Initializing Repositories
                              1. Adding and Committing Changes
                                1. Viewing History
                                2. Commits
                                  1. Commit Structure
                                    1. Writing Good Commit Messages
                                      1. Atomic Commits
                                      2. Branches
                                        1. Creating and Managing Branches
                                          1. Branch Naming Conventions
                                            1. Branch Lifecycle
                                            2. Merging and Rebasing
                                              1. Merge Strategies
                                                1. Rebase vs Merge
                                                  1. Resolving Conflicts
                                                  2. Remote Repositories
                                                    1. Cloning Repositories
                                                      1. Push and Pull Operations
                                                        1. Remote Tracking Branches
                                                      2. Git Branching Strategies
                                                        1. GitFlow
                                                          1. Main Branches
                                                            1. Feature Branches
                                                              1. Release Branches
                                                                1. Hotfix Branches
                                                                  1. Pros and Cons
                                                                  2. GitHub Flow
                                                                    1. Feature Branch Workflow
                                                                      1. Pull Request Process
                                                                        1. Continuous Deployment Focus
                                                                        2. GitLab Flow
                                                                          1. Environment-Based Branching
                                                                            1. Integration with Issue Tracking
                                                                              1. Release Branches
                                                                              2. Trunk-Based Development
                                                                                1. Short-Lived Branches
                                                                                  1. Feature Toggles
                                                                                    1. Continuous Integration Focus
                                                                                    2. Choosing a Branching Strategy
                                                                                      1. Team Size Considerations
                                                                                        1. Release Frequency
                                                                                          1. Complexity Requirements