# Общие сведения.

**Ссылки:**

[Книга по GIT](https://github.com/progit/progit2-ru/releases/download/2.1.86/progit.pdf)

[GIT клиент для windows](https://gitforwindows.org/)

**Теоретическая информация**

- Git хранит данные в виде набора снимков миниатюрной файловой системы
- Почти все операции выполняются локально
- Три основных состояния файлов: изменён (modified), индексирован (staged) и зафиксирован (committed) 
    - К изменённым относятся файлы, которые поменялись, но ещё не были зафиксированы.
    - Индексированный — это изменённый файл в его текущей версии, отмеченный для включения в следующий коммит.
    - Зафиксированный значит, что файл уже сохранён в вашей локальной базе
- Секции проекта Git: рабочая копия (working tree), область индексирования (staging area) и каталог Git (Git directory). 
    - Рабочая копия - снимок одной версии проекта. Эти файлы извлекаются из сжатой базы данных в каталоге Git и помещаются на диск для использования или редактирования.
    - Область индексирования — это файл с информацией о том, что попадёт в следующий коммит.
    - Каталог Git — это то место, где Git хранит метаданные и базу объектов вашего проекта. Это копируемая часть при клонировании репозитория с другого компьютера.
- Базовый подход в работе с Git: 
    - Изменяете файлы вашей рабочей копии.
    - Выборочно добавляете в индекс только те изменения, которые должны попасть в следующий коммит, добавляя тем самым снимки только этих изменений в индекс.
    - Когда вы делаете коммит, используются файлы из индекса как есть, и этот снимок сохраняется в ваш каталог Git.
    - Если определённая версия файла есть в каталоге Git, эта версия считается зафиксированной (committed). Если файл был изменён и добавлен в индекс, значит, он индексирован (staged). И если файл был изменён с момента последнего распаковывания из репозитория, но не был добавлен в индекс, он считается изменённым (modified).