- Андрей Куманяев/
- Git: руководства и команды/
- Как создать локальный репозиторий Git: полное руководство/
Как создать локальный репозиторий Git: полное руководство
Локальный репозиторий — это папка на вашем компьютере, которую Git отслеживает. Всё, что происходит внутри: создание файлов, их изменение, история коммитов — всё хранится здесь. Это первый шаг перед началом любого проекта с контролем версий. В этой статье разберём, как создать локальный репозиторий, настроить его и сделать первый коммит.
Предварительные требования #
Перед созданием репозитория убедитесь, что:
- Git установлен. Проверьте:
git --version. Если не установлен, читайте «Установка и настройка Git». - Git настроен. Указаны имя и email:
git config --global user.name "Ваше Имя". - Есть папка для проекта (создадим в процессе).
Шаг 1: создание папки для проекта #
# Создать папку
mkdir my-project
# Перейти в неё
cd my-project
Если папка уже существует — просто перейдите в неё:
cd /путь/к/существующей/папке
Шаг 2: инициализация Git репозитория #
git init
Вывод:
Initialized empty Git repository in /home/user/my-project/.git/
Команда git init создаёт скрытую папку .git — это и есть репозиторий. В ней хранится вся история, конфигурация и метаданные Git. Не трогайте и не удаляйте эту папку.
Проверьте что всё создалось:
ls -la
# drwxr-xr-x .
# drwxr-xr-x ..
# drwxr-xr-x .git ← вот он
git status
# On branch main
# No commits yet
# nothing to commit
Что находится в папке .git #
.git/
├── config — конфигурация репозитория
├── HEAD — указатель на текущую ветку
├── hooks/ — скрипты для хуков (pre-commit и др.)
├── info/
├── objects/ — хранилище объектов Git (коммиты, деревья, блобы)
└── refs/ — ссылки (ветки, теги)
Никогда не редактируйте файлы в .git/ вручную — это может повредить репозиторий.
Шаг 3: локальная конфигурация (опционально) #
Глобальные настройки уже установлены (git config --global). Для этого репозитория можно задать другие настройки — например, другой email:
# Настройки только для этого репозитория
git config user.email "[email protected]"
# Проверить конфигурацию
git config --local --list
# user.name=Иван Петров
# [email protected]
Шаг 4: создание файлов #
Создайте первые файлы проекта. Начните с README:
echo "# Мой проект" > README.md
echo "Описание проекта" >> README.md
Для реального проекта создайте нужные файлы в IDE или редакторе. Git начнёт отслеживать их после git add.
Проверьте статус:
git status
# Untracked files:
# README.md
Шаг 5: добавление файлов в индекс #
# Добавить конкретный файл
git add README.md
# Добавить все файлы
git add .
# или
git add -A
# Проверить что добавлено
git status
# Changes to be committed:
# new file: README.md
Шаг 6: первый коммит #
git commit -m "Initial commit: add README"
Вывод:
[main (root-commit) a1b2c3d] Initial commit: add README
1 file changed, 2 insertions(+)
create mode 100644 README.md
Первый коммит создан! Теперь у репозитория есть история.
Шаг 7: просмотр истории #
# Полный журнал
git log
# Компактный формат
git log --oneline
# a1b2c3d Initial commit: add README
# Подробности конкретного коммита
git show HEAD
Полный пример: проект с нуля #
# 1. Создание и инициализация
mkdir webapp
cd webapp
git init
# 2. Настройка (если нужны особые настройки)
git config user.email "[email protected]"
# 3. Создание .gitignore сразу
cat > .gitignore << 'EOF'
node_modules/
.env
*.log
.DS_Store
EOF
# 4. Создание начальных файлов
echo "# My Web App" > README.md
echo "console.log('Hello');" > index.js
# 5. Добавление в индекс
git add .gitignore README.md index.js
# 6. Проверка
git status
git diff --staged
# 7. Первый коммит
git commit -m "Initial commit: project scaffold"
# 8. Просмотр
git log --oneline
git branch
# 9. Создание ветки для разработки
git switch -c develop
Связывание с удалённым репозиторием #
После создания локального репозитория его можно связать с GitHub или GitLab:
# Создайте репозиторий на GitHub (через веб-интерфейс)
# Затем добавьте remote:
# По SSH (рекомендуется)
git remote add origin [email protected]:username/my-project.git
# По HTTPS
git remote add origin https://github.com/username/my-project.git
# Проверить
git remote -v
# Переименовать ветку в main
git branch -M main
# Первый push
git push -u origin main
Как отменить инициализацию #
Если случайно запустили git init в неправильной папке:
# Удалить папку .git — репозиторий исчезнет
rm -rf .git
# Убедиться что Git больше не видит репозиторий
git status
# fatal: not a git repository
Файлы проекта останутся нетронутыми — удаляется только папка .git.
Инициализация существующего проекта #
Если у вас уже есть папка с кодом, git init работает точно так же:
cd /path/to/existing/project
git init
# Добавить все существующие файлы
git add .
# Первый коммит
git commit -m "Initial commit: добавлен существующий код проекта"
Часто задаваемые вопросы #
Что находится в папке .git и почему её нельзя удалять? В .git/ хранится вся история коммитов, ветки, теги и конфигурация. Удаление этой папки уничтожает всю историю Git, файлы проекта останутся, но превратятся в обычную папку без версионирования.
Почему нужно указывать имя и email? Git записывает автора в каждый коммит. На GitHub и GitLab эта информация используется для привязки коммитов к вашему профилю и отображения в статистике.
Что будет, если инициализировать Git внутри другого Git-репозитория? Git не запрещает это, но это плохая практика. Вложенные репозитории создают путаницу. Правильное решение — git submodule для включения одного репозитория в другой.
Как отменить коммит? git reset HEAD~1 отменяет последний коммит, оставляя изменения в рабочей директории.
Какая разница между git add . и git add -A? В Git 2.x практически никакой разницы. Оба добавляют новые, изменённые и удалённые файлы. git add -A применяется ко всему репозиторию независимо от текущей папки.
Заключение #
Создание локального репозитория — это git init, добавление файлов — это git add, сохранение состояния — это git commit. Три команды, с которых начинается любой проект.
Следующий шаг — создать репозиторий на GitHub и связать его с локальным, чтобы публиковать код и работать в команде.