Первый репозиторий: 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.