Найти тему
Дневник программиста

Состояния файлов в Git

У вас имеется Git-репозиторий и рабочая копия файлов для проекта. Вы работаете с классами, изменяете файлы и вскоре проект достигает состояния, которое нужно сохранить. И вы выполняете команды git add и git commit, то есть фиксируете состояние. Зафиксированные состояния репозитория называются снимками или snapshots.

Рабочий каталог, область подготовленных файлов, каталог Git'а
Рабочий каталог, область подготовленных файлов, каталог Git'а

В рабочем каталоге два типа файлов: неотслеживаемые и отслеживаемые. Неотслеживаемые не находятся под версионным контролем. Это файлы, которые не входили в последний слепок состояния и не подготовлены к коммиту (git add). В Идее они коричневого цвета.

Отслеживаемые файлы — это те, которые были в последнем слепке состояния проекта или подготовлены к коммиту. Они трёх типов: неизменённые, изменённые и подготовленные. Когда вы впервые клонируете репозиторий, все файлы будут отслеживаемыми и неизменёнными. Потому что вы взяли их из хранилища и не редактировали.

Изменёнными файлы становятся, как только вы отредактируете их. Git будет рассматривать их как изменённые, потому что они изменились с последнего коммита. Подготовленными вы делаете их командой git add. Так файлы индексируются, попадают в stage. Stage - место для подготовленных файлов. И чтобы зафиксировать индексированные изменения делаете git commit. Затем цикл повторяется.

Более подробно: https://git-scm.com/book/ru/v1/Основы-Git-Запись-изменений-в-репозиторий