Appearance
Git status - Статус
git status — это команда, используемая в системе управления версиями Git для проверки текущего состояния файлов в вашей рабочей директории и индексе (также известном как "стейдж-область"). Она показывает, какие файлы были изменены, добавлены или удалены, и помогает вам понять, какие действия необходимо предпринять для фиксации изменений.
Статусные состояния файлов:
Файлы в Git могут находиться в одном из следующих состояний:
Untracked- не отслеживаемые- Файлы не отслеживаются системой контроля версий, которые находятся в рабочей директории, но не добавлены в
Git. - Пример в выводе
git status:shellUntracked files: (use "git add <file>..." to include in what will be committed) new_file.txt
- Файлы не отслеживаются системой контроля версий, которые находятся в рабочей директории, но не добавлены в
Unmodified- неизменённые- Файлы, которые отслеживаются
Git, но не имеют изменений по сравнению с последней фиксациейcommit. - Такие файлы не отображаются в выводе
git status, так как они находятся в "нормальном" состоянии.
- Файлы, которые отслеживаются
Modified- изменённые- Файлы, которые отслеживаются
Git, но были изменены с момента последней фиксацииcommit. - Пример в выводе
git status:shellChanges not staged for commit: (use "git add <file>..." to update what will be committed) (use "git restore <file>..." to discard changes in working directory) modified: existing_file.txt
- Файлы, которые отслеживаются
Staged- добавленные в индекс- Файлы, которые были добавлены в индекс для отслеживания изменений с помощью
git add, но изменения ещё не зафиксированы. - Пример в выводе
git status:shellChanges to be committed: (use "git restore --staged <file>..." to unstage) new file: new_file.txt modified: existing_file.txt
- Файлы, которые были добавлены в индекс для отслеживания изменений с помощью
Как увидеть статусы файлов:
Чтобы увидеть статусы файлов в вашем репозитории Git, используйте команду:
shell
git statusПосле выполнения этой команды Git отобразит список файлов с их текущими статусами. Пример в выводе git status:
shell
F:\code_last\try_git>git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
file_1_text.txt
nothing added to commit but untracked files present (use "git add" to track)shell
F:\code_last\try_git>git status
На ветке master
Коммитов пока нет
Неотслеживаемые файлы:
(используйте "git add <file>...", чтобы включить их в коммит)
file_1_text.txt
ничего не добавлено в коммит, но есть неотслеживаемые файлы (используйте "git add", чтобы начать отслеживание)Изменение статусов файлов:
Вы можете вручную изменять статусы файлов, используя следующие команды:
Добавление файлов:
- Чтобы добавить файл в индекс - для отслеживания изменений (
стейджинг-область) и подготовить его к фиксацииcommit, используйте:shellgit add <имя_файла> - Для добавления всех измененных файлов используйте точку
add .:shellgit add .
- Чтобы добавить файл в индекс - для отслеживания изменений (
Удаление файлов:
- Чтобы удалить файл из рабочей директории и отслеживания изменений, используйте:shell
git rm <имя_файла>
- Чтобы удалить файл из рабочей директории и отслеживания изменений, используйте:
Изменение отслеживаемых файлов:
- Если вы хотите отключить отслеживание файла, который уже находится в репозитории, используйте:shell
git rm --cached <имя_файла> - Для восстановления отслеживания файла после его удаления из репозитория:shell
git add <имя_файла>
- Если вы хотите отключить отслеживание файла, который уже находится в репозитории, используйте:
git status — это важный инструмент для понимания изменений в вашем репозитории и обеспечения правильного управления версиями файлов.
Практика git status
В папке проекта с репозиторием создадим три файла:
file_1_untracked.txt:Untracked- не отслеживаемыеfile_2_unmodified.txt:Unmodified- неизменённыеfile_3_modified.txt:Modified- изменённыеfile_4_stage.txt:Staged- добавленные в индекс
В VSC - визуал студия код результат созданных файлов может быть следующим:

Вывод git status может выглядеть так:
shell
F:\code_last\try_git>git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
file_1_untracked.txt
file_2_unmodified.txt
file_3_modified.txt
file_4_stage.txt
nothing added to commit but untracked files present (use "git add" to track)
F:\code_last\try_git>shell
F:\code_last\try_git>git status
На ветке master
Коммитов пока нет
Неотслеживаемые файлы:
(используйте "git add <file>...", чтобы включить их в коммит)
file_1_untracked.txt
file_2_unmodified.txt
file_3_modified.txt
file_4_stage.txt
ничего не добавлено в коммит, но есть неотслеживаемые файлы (используйте "git add", чтобы начать отслеживание)
F:\code_last\try_git>В настоящее время все файлы проекта не отслеживаются гитом, т.е. гит не следит за изменениями в файлах и не хранит их. Подключим файлы к отслеживанию, т.е. переведем файлы в состояние stage, воспользовавшись подсказанной командой git add <file_name>. Для отслеживания подключим файлы со 2 по 4: file_2_unmodified.txt,file_3_modified.txt, file_4_stage.txt
shell
F:\code_last\try_git>git add file_2_unmodified.txt
F:\code_last\try_git>git add file_3_modified.txt
F:\code_last\try_git>git add file_4_stage.txt
F:\code_last\try_git>и проверим статус репозитория git status:
shell
F:\code_last\try_git>git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: file_2_unmodified.txt
new file: file_3_modified.txt
new file: file_4_stage.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
file_1_untracked.txt
F:\code_last\try_git>shell
F:\code_last\try_git>git status
На ветке master
Коммитов пока нет
Изменения, готовые к коммиту:
(используйте "git rm --cached <file>...", чтобы убрать из индекса)
новый файл: file_2_unmodified.txt
новый файл: file_3_modified.txt
новый файл: file_4_stage.txt
Неотслеживаемые файлы:
(используйте "git add <file>...", чтобы включить их в коммит)
file_1_untracked.txt
F:\code_last\try_git>Теперь из готовых с фиксации файлов удалим файл file_4_stage.txt. Для этого воспользуемся подсказанной командой: git rm --cached <file>...
shell
F:\code_last\try_git>git rm --cached file_4_stage.txt
rm 'file_4_stage.txt'
F:\code_last\try_git>Проверим статус репозитория git status:
shell
F:\code_last\try_git>git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: file_2_unmodified.txt
new file: file_3_modified.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
file_1_untracked.txt
file_4_stage.txt
F:\code_last\try_git>shell
F:\code_last\try_git>git status
На ветке master
Коммитов пока нет
Изменения, готовые к коммиту:
(используйте "git rm --cached <file>...", чтобы убрать из индекса)
новый файл: file_2_unmodified.txt
новый файл: file_3_modified.txt
Неотслеживаемые файлы:
(используйте "git add <file>...", чтобы включить их в коммит)
file_1_untracked.txt
file_4_stage.txt
F:\code_last\try_git>Сделаем первую фиксацию commit двух файлов file_2_unmodified.txt, file_3_modified.txt
shell
F:\code_last\try_git>git commit -m "commit 1-st for files: file_2file_2_unmodified.txt, file_3_modified.txt"
[master (root-commit) 9991dfb] commit 1 for files: file_2file_2_unmodified.txt, file_3_modified.txt
2 files changed, 2 insertions(+)
create mode 100644 file_2_unmodified.txt
create mode 100644 file_3_modified.txt
F:\code_last\try_git>shell
F:\code_last\try_git>git commit -m "фиксация 1-ая для файлов: file_2file_2_unmodified.txt, file_3_modified.txt"
[master (root-commit) 9991dfb] коммит 1 для файлов: file_2file_2_unmodified.txt, file_3_modified.txt
2 файла изменены, 2 вставки(+)
создан режим 100644 file_2_unmodified.txt
создан режим 100644 file_3_modified.txt
F:\code_last\try_git>Проверим статус репозитория git status:
shell
F:\code_last\try_git>git status
On branch master
Untracked files:
(use "git add <file>..." to include in what will be committed)
file_1_untracked.txt
file_4_stage.txt
nothing added to commit but untracked files present (use "git add" to track)
F:\code_last\try_git>shell
F:\code_last\try_git>git status
На ветке master
Неотслеживаемые файлы:
(используйте "git add <file>...", чтобы включить их в коммит)
file_1_untracked.txt
file_4_stage.txt
ничего не добавлено в коммит, но есть неотслеживаемые файлы (используйте "git add", чтобы начать отслеживание)
F:\code_last\try_git>Добавим файл file_4_stage.txt снова к отслеживаемым файлам команда git add <file_name>:
shell
F:\code_last\try_git>git add file_4_stage.txt
F:\code_last\try_git>Содержимой файла file_3_modified.txt, в Windows: используйте команду type (В Linux и macOS: используйте команду cat)
shell
F:\code_last\try_git>type file_3_modified.txt
# Modified file - измененный файл
F:\code_last\try_git>Воспользовавшись редактором кода внесем изменения, добавив в него "New modify file - новые изменения файла":

Редактор кода отслеживает состояние репозитория, подсвечивает и подписывает буквами состояние фалов:
U-Untracked- не отслеживаемыйM-Modified- изменённыеA-Added to staged- добавленные в индекс отслеживание
Проверим статус репозитория git status:
shell
F:\code_last\try_git>git status
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: file_4_stage.txt
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: file_3_modified.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
file_1_untracked.txt
F:\code_last\try_git>shell
F:\code_last\try_git>git status
На ветке master
Изменения, готовые к коммиту:
(используйте "git restore --staged <file>...", чтобы убрать из индекса)
новый файл: file_4_stage.txt
Изменения, не подготовленные к коммиту:
(используйте "git add <file>...", чтобы обновить то, что будет закоммичено)
(используйте "git restore <file>...", чтобы отменить изменения в рабочем каталоге)
изменен: file_3_modified.txt
Неотслеживаемые файлы:
(используйте "git add <file>...", чтобы включить их в коммит)
file_1_untracked.txt
F:\code_last\try_git>В итоге получаем файлы в четырех базовых состояниях в репозитории:
file_4_stage.txt:Staged- добавленные в промежуточное состояние файл перед фиксациейcommit, позволяет выборочно фиксировать изменения.file_3_modified.txt:Modified- ранее зафиксированный файл, изменённый, но не добавлен в отслеживаниеstage.file_1_untracked.txt:Untracked- не отслеживаемый гитом файл.file_2_unmodified.txt:Unmodified- ранее зафиксированный файл, и далее не изменённый файл.
Практика:
- Проверяем текущий статус файлов через
git status. - Добавляем необходимые файлы в
stageс помощью командыgit add. - Создаем коммит через
git commit.