Что такое репозиторий — и почему это не папка на GitHub, а машина времени

Смотри, тут почти все новички путаются. Слышат «репозиторий» — представляют папку с кодом где-то на GitHub, в облаке. Логично, но мимо.
На самом деле репозиторий живёт у тебя на ноутбуке, в скрытой папке рядом с кодом. И это не просто папка — это машина времени. Он хранит каждую версию проекта: можешь вернуться к тому, что было вчера, неделю назад или до того, как ты всё сломал одной строчкой. GitHub — всего лишь одно из мест, где можно держать копию. Разберём по порядку.
Что это такое — проект плюс вся его история
Репозиторий (repository, в народе «репо») — это папка твоего проекта, за которой следит система контроля версий, обычно Git.
Обычная папка помнит только текущее состояние файлов. Репозиторий помнит все состояния: каждое сохранение, кто и что менял, когда и зачем. Это как история правок в Google Docs, только для любого проекта — кода, текста, конфигов.
Ключевая мысль: репозиторий = твои файлы + вся их история. Убери историю — останется обычная папка.
Репозиторий ≠ GitHub — важная разница
Это главная путаница, поэтому скажем прямо.
- Git — программа, которая ведёт историю. Работает у тебя на компьютере.
- Репозиторий — конкретный проект под присмотром Git (папка + история).
- GitHub — сайт, где можно хранить копию репозитория в облаке и делиться ей.
Аналогия: Git — это фотоаппарат, репозиторий — твой альбом снимков проекта, а GitHub — облачное хранилище, куда ты заливаешь альбом, чтобы не потерять и показать друзьям. GitHub можно вообще не использовать: репозиторий прекрасно живёт локально. Просто с ним удобнее — есть бэкап и совместная работа.
Есть и альтернативы GitHub — GitLab, Bitbucket, Gitea. Все они хранят те же самые Git-репозитории.
Что лежит внутри
Когда ты в папке проекта выполняешь git init, Git создаёт внутри скрытую папку .git. Вот она и делает обычную папку репозиторием. Удалишь .git — история пропадёт, останется просто набор файлов.
Внутри истории лежат коммиты (commits). Коммит — это сохранённый снимок проекта в конкретный момент, с подписью: что изменилось и зачем.
a3f9c «добавил кнопку входа» ← сегодня
7b2e1 «поправил цвет шапки» ← вчера
1c8d4 «первый коммит» ← начало
Каждый коммит — точка, к которой можно вернуться. Сломал проект? Откатываешься на коммит назад — и всё как было. Это и есть та самая машина времени.
Локальный и удалённый — зачем две копии
Обычно у репозитория две копии, и это нормально:
- Локальный (local) — на твоём компьютере. Здесь ты работаешь: меняешь файлы, делаешь коммиты.
- Удалённый (remote) — на GitHub или другом сервисе. Копия в облаке.
Ты синхронизируешь их двумя движениями: push — отправить свои коммиты в облако, pull — забрать чужие изменения к себе. Именно так работают в команде: каждый у себя локально, общий центр — на GitHub. А когда ты хочешь предложить свои изменения в чужой проект, ты делаешь pull request — «прошу влить мою ветку». Если это звучит как каша — не пугайся, на практике всё осваивается за вечер: как пользоваться Git новичку.
Заодно про ветки (branch)
Раз уж говорим о репозитории — там живут ещё и ветки. Ветка — это отдельная линия изменений: ты как бы делаешь копию проекта «вбок», спокойно экспериментируешь в ней, а если сломаешь — основная версия цела и невредима. Получилось хорошо — вливаешь ветку обратно в основную. Готово, идея добавлена. Именно ветки превращают репозиторий из «истории» в безопасную песочницу, где не страшно пробовать.
Мне нужен репозиторий для маленького проекта?
Да, и чем раньше — тем лучше. Даже для проекта из одного файла. Один git init в начале — и у тебя есть кнопка «отменить» на весь проект, а не только на последнее действие в редакторе. Первый раз, когда ИИ-ассистент перепишет пол-проекта не туда, ты скажешь спасибо этой привычке.
Репозиторий и папка проекта — это одно и то же?
Почти. Папка проекта становится репозиторием в момент, когда внутри появляется .git (после git init или git clone). До этого — просто папка с файлами. После — папка с файлами и памятью обо всех изменениях.
Короткие уроки-истории, симулятор агента и ежедневная практика — в нашем мобильном приложении. Бесплатно.





