git init: сделать из папки репозиторий
Обновлено 31 июля 2026 г.
git init превращает обычную папку в репозиторий: создаёт внутри неё скрытый каталог .git, где дальше будет лежать вся история проекта.
Команда нужна ровно один раз на проект, в самом начале. Зайди в папку с файлами (или создай пустую) и выполни:
$ mkdir my-first-repo
$ cd my-first-repo
$ git init
Initialized empty Git repository in /home/anna/my-first-repo/.git/Одна строка ответа, и каталог стал репозиторием. Снаружи ничего не изменилось: твои файлы лежат где лежали, git их не трогает и не переписывает.
Что появилось в .git
Имена, которые начинаются с точки, файловый менеджер и обычный ls не показывают. Флаг -a снимает это скрытие:
$ ls -a
. .. .git
$ ls .git
HEAD config description hooks info objects refsКаталог objects - хранилище снимков, там окажется содержимое всех версий всех файлов. HEAD - указатель на текущее место в истории. refs держит ветки и метки, config - настройки этого конкретного репозитория. Руками внутрь лазить не нужно: всё, что там лежит, меняется командами.
Удалишь .git - удалишь историю целиком, без корзины. Файлы проекта при этом уцелеют, но станут просто файлами.
init против clone
git init заводит пустую историю для проекта, которого ещё нет в git. git clone забирает уже существующий репозиторий с сервера вместе со всей его историей и сам создаёт папку. После clone делать init не нужно - это частая путаница первого дня.
Повторный git init в том же каталоге ничего не ломает и историю не стирает:
$ git init
Reinitialized existing Git repository in /home/anna/my-first-repo/.git/Частые ошибки
Самая частая - выполнить git init в домашнем каталоге или прямо на рабочем столе. Git послушается и начнёт считать содержимым проекта всё подряд: загрузки, скриншоты, чужие папки, кэши программ. Репозиторий заводят под один конкретный проект, в его собственной папке.
Если уже успел, ничего страшного не произошло. Проверь через pwd, что стоишь именно в той папке, где случился лишний git init, и удали каталог:
$ pwd
/home/anna
$ rm -rf .gitФайлы останутся на месте. Путь проверь дважды: rm -rf ничего не переспрашивает.
Вторая ошибка - git init внутри уже существующего репозитория, в подпапке. Формально это разрешено, но получается вложенный репозиторий, за которым внешний не следит, и изменения в нём молча не попадают в коммиты.
Где это в учебнике
Тема разобрана здесь: Глава 2. Первый репозиторий.
Потренироваться руками - в интерактивном уроке Первый репозиторий.