Репозиторий (repo)
Репозиторий — хранилище кода проекта с полной историей изменений. В Git-мире это папка с .git/ — там все коммиты, ветки, теги.
Локальный и удалённый
- Локальный — на твоём диске. Полная копия всей истории.
- Удалённый (remote) — на хостинге. Точка синхронизации между разработчиками.
Git — распределённая система: каждый локальный клон это полноценный репозиторий со всей историей. «Центральный» сервер — просто соглашение.
Public и Private
- Public — все могут читать (клонировать, форкать). Права на push контролируются владельцем.
- Private — доступ только у явно приглашённых.
- Internal — только у энтерпрайза, видно всем в организации.
Fork, Mirror, Clone
- Clone — скачал копию локально:
git clone URL. - Fork — сделал свою серверную копию на хостинге. Обычно чтобы отправить PR обратно.
- Mirror — автоматически синхронизируемая копия, часто на другом хостинге. Codeberg и Forgejo умеют pull mirror с GitHub.
Что в корне репозитория
- README.md — главный документ.
LICENSE— лицензия.- .gitignore — что не коммитить.
CHANGELOG.md— история версий.CONTRIBUTING.md— как контрибьютить.CODE_OF_CONDUCT.md— правила общения.SECURITY.md— как сообщать об уязвимостях.
Где хостить
- GitHub — самый большой, но американский.
- GitVerse — Сбер, для российских разработчиков.
- hub.mos.ru — правительство Москвы.
- Codeberg — некоммерческий, из Германии, на Forgejo.
- Forgejo — self-hosted.
Монорепо и полирепо
- Монорепо — вся кодовая база компании в одном репозитории (Google, Facebook, Uber). Единая история, легко рефакторить, но огромный размер.
- Полирепо — каждый сервис/библиотека в своём репозитории. Проще права и CI, но сложнее менеджить кросс-репо изменения.
См. также
- Git, README, Gist, .gitignore