- Source code, configuration, and documentation.
- A commit history that records who changed what and when.
- Branches to develop features or fixes in isolation.
- Collaboration metadata: issues, pull requests, code reviews, and comments.

Why repositories matter
- Single source of truth: code, history, and collaboration are stored together.
- Traceability: commits and PRs provide an audit trail for changes.
- Collaboration: issues and pull requests structure team workflows and reviews.
- Recoverability: mistakes can be undone by reverting to earlier commits.
- Public repositories — visible to everyone.
- Private repositories — restricted to specific users or teams.
- Fine-grained permissions — read, write, or admin access per collaborator or team.
- Commit frequently with clear messages.
- Use branches for features and fixes; keep
mainstable. - Open pull requests for review and automated testing.
- Use issues to track work and link them to code changes.
- Tag releases and maintain changelogs for users.
A repository ties together code, history, and collaboration tools (issues, pull requests, and discussions), making it the single source of truth for your project.
- GitHub Docs — Repositories
- Git Basics — Git SCM
- GitHub Guides — Collaborating with issues and pull requests