> For the complete documentation index, see [llms.txt](https://kaze.gitbook.io/qa-theory/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kaze.gitbook.io/qa-theory/git/chto-takoe-commits-branches-v-git.md).

# Что такое commits, branches в Git?

#### **Commit**

* Commit — это **снимок состояния вашего репозитория в конкретный момент времени**.
* Содержит:
  * Изменённые файлы.
  * Сообщение (commit message), которое объясняет, что было сделано.
  * Уникальный идентификатор (SHA-1 hash).
* Commit позволяет откатываться к предыдущим версиям кода или отслеживать историю изменений.

Пример команды:

```bash
git add file.txt       # добавляем изменения в индекс
git commit -m "Добавил новую функцию"  # фиксируем изменения
```

***

#### **Branch**

* Branch — это **ветка разработки**, отдельная линия изменений в проекте.
* Основная ветка обычно называется `main` или `master`.
* Ветки позволяют:
  * Параллельно разрабатывать разные функции.
  * Тестировать изменения, не ломая основной код.
  * Объединять изменения через merge или rebase.

Примеры команд:

```bash
git branch new-feature        # создать ветку
git checkout new-feature      # переключиться на ветку
git merge new-feature         # объединить ветку с текущей
```

***

**Идея в целом:**\
Commit — это **фиксированное состояние кода**, branch — это **путь, по которому идут эти фиксации**.
