- What a repository is and its core benefits
- Git-based hosting: GitHub and Bitbucket
- AWS’s native Git service: AWS CodeCommit
- Using Amazon S3 as a pipeline source
What Is a Repository?
A repository (repo) is a version control system that records changes to files over time. With version control, you can:- Revert to previous states without manual backups
- Collaborate across distributed teams
- Develop features or fixes on isolated branches
- Merge approved changes back into the main codebase

Comparison of Repository Services
| Service | Hosting Type | Key Features |
|---|---|---|
| GitHub | Cloud Git | Pull requests, branch protection, community packages |
| Bitbucket | Cloud Git | Free private repos, built-in pipelines |
| AWS CodeCommit | Managed Git | IAM integration, encryption, unlimited repo size |
| Amazon S3 | Object Storage | File versioning, high durability (no Git workflows) |
GitHub
GitHub is the most popular cloud-based Git hosting platform. Core workflows include:- Creating or cloning repositories
- Committing changes with descriptive messages
- Pushing updates and opening pull requests
- Reviewing, approving, and merging code
Bitbucket
Bitbucket offers Git hosting with free private repositories and integrated CI/CD pipelines (Bitbucket Pipelines). It supports standard Git commands and can migrate repos into AWS CodeCommit for a fully AWS-centric workflow.AWS CodeCommit
AWS CodeCommit is a fully managed, cloud-native Git service. It supports all standard Git operations and integrates seamlessly with other AWS developer tools.AWS CodeCommit integrates natively with AWS IAM, enabling granular access control and audit trails.

- Fully managed backups, scaling, and maintenance
- Unlimited repository size—pay only for storage used
- Encryption at rest and in transit with IAM policies
- High availability with built-in redundancy
- Native integration with CodeBuild, CodeDeploy, and CodePipeline

Amazon S3
Amazon S3 serves as an alternative source for your pipeline, offering:- File versioning to restore previous object versions
- Monitoring and lifecycle management
Amazon S3 does not support branches or pull requests like Git-based services. Use it for artifacts or simple file versioning only.
Summary
In this lesson, we explored:- The role of a repository in version control and collaboration
- Git hosting options: GitHub and Bitbucket
- AWS CodeCommit’s managed Git features
- Amazon S3 as a non-Git source with versioning
