Первый репозиторий: git init и git clone

Создаём свой первый репозиторий двумя способами — с чистого листа и из чужого проекта.

Репозиторий — это папка проекта плюс скрытая подпапка .git, в которой git хранит всю историю изменений.

Способ 1: git init — новый проект с нуля

Если вы начинаете проект на пустом месте, перейдите в его папку и инициализируйте репозиторий:

mkdir my-project
cd my-project
git init

Вывод:

Initialized empty Git repository in /home/ivan/my-project/.git/

Команда создала скрытую папку .git — это и есть «мозг» репозитория. Сам проект пока пустой: git знает о нём, но ещё ничего не отслеживает. Удалите папку .git — и git «забудет» всю историю, останутся только обычные файлы.

Способ 2: git clone — копия существующего проекта

Чаще вы будете присоединяться к уже существующему проекту, который лежит, например, на GitHub. Команда git clone скачивает весь репозиторий вместе с историей:

git clone https://github.com/octocat/Hello-World.git

Вывод:

Cloning into 'Hello-World'...
remote: Enumerating objects: 13, done.
remote: Total 13 (delta 0), reused 0
Receiving objects: 100% (13/13), done.

Git создаст папку Hello-World, скачает в неё все файлы и всю историю, а также автоматически запомнит адрес, откуда вы клонировали (он называется origin). Можно задать своё имя папки, дописав его в конце:

git clone https://github.com/octocat/Hello-World.git moя-папка

init или clone — что выбрать

СитуацияКоманда
Начинаю новый проект с нуляgit init
Присоединяюсь к существующему проектуgit clone <url>

Что внутри .git

Заглядывать внутрь руками не нужно, но полезно знать: там лежат все ваши коммиты, ветки, настройки репозитория и ссылки на удалённые серверы. Никогда не редактируйте содержимое .git вручную — для этого есть команды git.

Частые вопросы новичка

«Я запустил git init не в той папке, что делать?» Ничего страшного: просто удалите созданную папку .git — проект снова станет обычной папкой без контроля версий, файлы при этом не пострадают.

«Можно ли клонировать только часть истории?» Да. Для огромных репозиториев бывает полезен «неглубокий» клон, который скачивает не всю историю, а только последние коммиты:

git clone --depth 1 https://github.com/octocat/Hello-World.git

Это заметно быстрее и экономит место, когда история вам не нужна — например, при разовой сборке проекта.

«После init ничего не сохранилось — почему?» Потому что git init лишь создаёт репозиторий. Файлы в нём ещё не зафиксированы: их нужно добавить в индекс и сделать первый коммит. Об этом — в следующих уроках.

Итог

  • git init превращает обычную папку в репозиторий, создавая .git.
  • git clone <url> скачивает существующий репозиторий вместе со всей историей.
  • После клонирования адрес источника автоматически сохраняется как origin.
Проверьте себя
1. Какая команда превращает существующую папку в git-репозиторий?
Agit clone
Bgit init
Cgit start
Dgit new
2. Что делает git clone?
AСоздаёт пустой репозиторий
BСкачивает существующий репозиторий вместе со всей историей
CУдаляет локальный репозиторий
DТолько настраивает имя пользователя
3. Где git хранит историю репозитория?
AВ файле history.txt в корне проекта
BВ скрытой папке .git
CТолько на сервере GitHub
DВ оперативной памяти
Поддержать проект