- distributed workflows with local repositories,
- branching and merging for isolated work,
- a staging area for preparing changes,
- detailed commit history to track changes and releases.

- Work in your working directory and modify files.
- Stage changes to the index (prepare them for a commit).
- Commit staged changes to your local repository.
- Push commits to a remote repository to share changes.
- Pull from remotes and merge or rebase into local branches.
- Use branches to isolate features, experiments, or fixes; merge back into
mainwhen ready.
- A branch is an independent line of development that diverges from the main codebase.
- Typical branch types: feature branches, release branches, hotfix branches.
- Common strategies you’ll encounter: GitHub Flow (simple, trunk-based), Git Flow (release-oriented), and trunk-based development.
- Choose a branching strategy that aligns with your team’s release cadence and CI/CD pipeline.

- Tags are immutable, human-readable pointers to specific commits used to mark releases (for example,
v1.0.0). - Lightweight tags are simple pointers; annotated tags include metadata such as author, date, and message.
- Use tags in release automation, build artifacts, and deployment pipelines to ensure reproducible deployments.


Note: The slide below documents a service change announcement (dated June 6, 2024) indicating CodeCommit’s retirement path: no new sign-ups, continued support for existing customers, and no new features planned. Treat this as a policy/roadmap note — always confirm the current AWS service status from official AWS communications before planning new projects.

Integration patterns
- Webhooks: repository triggers an HTTP event to start an AWS pipeline (CodePipeline, custom webhook receivers).
- Hosted runners/agents: use provider-hosted or self-hosted runners/agents that execute builds in AWS (EC2, ECS, EKS).
- Service connectors: use provider-specific integrations or tokens to let AWS services pull source or trigger builds.
- Core Git concepts (branches, commits, tags, push/pull) are universal regardless of provider.
- AWS CodeCommit historically offered tight IAM integration — confirm the current AWS guidance before building new workflows.
- For CI/CD, most teams prefer webhooks or integrated runners to trigger AWS pipelines (for example,
CodePipeline,CodeBuild) or external CI systems. - When designing pipelines, consider:
- Trigger reliability (webhooks vs polling)
- Security (least-privilege service accounts, short-lived credentials)
- Scalability (hosted runners vs self-managed agents)
- Artifact immutability (use tags or commit SHAs to reference builds)
- AWS CodeCommit
- CodePipeline Documentation
- CodeBuild Documentation
- GitHub
- GitLab
- Bitbucket
- Azure DevOps
- Kubernetes — GitOps & CI/CD patterns