Основные понятия Git
Репозиторий (repository)
Репозиторий — это папка, в которой Git отслеживает все изменения файлов.
Он хранит всю историю проекта: все коммиты, ветки, настройки.
Создать репозиторий можно в любой папке:
git init
После этой команды в папке появляется скрытая папка .git — именно там Git хранит всю информацию.
Не удаляйте её — без неё репозиторий перестанет работать.
Пример:
Вы создаёте мобильное приложение на React Native. Папка MyMobileApp/ становится репозиторием — Git будет следить за всеми изменениями в файлах App.js, src/components/Button.js, package.json, ios/ и android/.
Коммит (commit)
Коммит — это сохранённое состояние проекта на определённый момент.
Это как снимок экрана вашего кода, который вы можете вернуть в любое время.
Каждый коммит имеет уникальный хеш (например, a1b2c3d4) и сообщение, описывающее, что было изменено.
Пример создания коммита:
git add src/components/LoginButton.js
git commit -m "Добавил кнопку входа с анимацией"
git add— выбирает изменения для сохранения.git commit— фиксирует их как единое целое.
Важно: коммит — это не просто сохранение файла. Это логическая единица изменений.
Хороший коммит делает одну вещь и говорит, что именно он сделал.
Пример плохого коммита:
"fixed stuff" — непонятно, что исправлено.
Пример хорошего коммита:
"Исправил баг: кнопка входа не реагировала на тач в Android" — ясно, понятно, воспроизводимо.
Ветка (branch)
Ветка — это изолированная линия разработки.
По умолчанию при создании репозитория создаётся ветка main.
Вы можете создавать новые ветки для работы над новой функцией, исправлением бага или экспериментом — и не мешать основной версии приложения.
Пример:
git branch feature/login-animation
git switch feature/login-animation
Теперь вы работаете в ветке feature/login-animation.
Все изменения — только здесь.
Когда функция готова — вы объедините её с main.
Это позволяет:
- Не ломать рабочую версию приложения.
- Параллельно работать над несколькими задачами.
- Легко откатиться, если что-то пошло не так.
Пример сценария:
Вы добавляете анимацию при входе в приложении.
Другой разработчик работает над авторизацией через Google.
Оба работают в своих ветках — никаких конфликтов до момента слияния.
Статус файлов: tracked, modified, staged, untracked
Git отслеживает файлы по четырём состояниям. Понимание этих состояний — ключ к работе с Git.
| Состояние | Что значит | Пример |
|---|---|---|
| untracked | Файл новый, Git его ещё не видел | Вы создали src/screens/AuthScreen.js — он пока не в репозитории |
| tracked | Файл уже был добавлен в репозиторий ранее | App.js уже коммитился — он отслеживается |
| modified | Файл изменён, но не сохранён | Вы отредактировали src/components/Button.js — Git знает, что он изменился, но не сохранил это |
| staged | Изменения подготовлены к коммиту | Вы выполнили git add src/components/Button.js — изменения ждут фиксации |
Чтобы посмотреть текущее состояние всех файлов:
git status
Пример последовательности:
- Вы создали
src/screens/AuthScreen.js→ untracked - Вы выполнили
git add src/screens/AuthScreen.js→ staged - Вы выполнили
git commit -m "Добавил экран авторизации"→ теперь файл tracked, изменения зафиксированы - Вы снова отредактировали
src/screens/AuthScreen.js→ теперь он modified
Запомните: чтобы сохранить изменения — нужно сначала
add, потомcommit.
Нельзя сделать коммит, не добавив изменения в staging-зону.