Тестирование неотслеживаемых (unstaged) файлов
На этом этапе мы узнаем, как Git обрабатывает изменения, внесенные в отслеживаемый файл, но еще не добавленные в область подготовки (staging area). Такие изменения называются "неотслеживаемыми" (unstaged).
Убедитесь, что вы находитесь в директории ~/project/my-time-machine
.
Ранее мы создали и добавили в область подготовки файл future_plans.txt
. Теперь добавим еще одну строку в этот файл, не добавляя изменения в область подготовки:
echo "Plan 2: Invent a self-folding laundry machine" >> future_plans.txt
Оператор >>
добавляет текст в существующий файл, а не перезаписывает его.
Теперь проверим статус нашего репозитория еще раз:
git status
Вы должны увидеть вывод, похожий на следующий:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: future_plans.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: future_plans.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
message.txt
Обратите внимание на новый раздел: "Changes not staged for commit:". Это говорит нам, что Git видит изменения в файле future_plans.txt
, которые отличаются от версии в области подготовки. Файл помечен как "измененный" (modified).
Это ключевой концепт в Git: рабочая директория (где вы вносите изменения) отделена от области подготовки. В вашей рабочей директории могут быть изменения, которые еще не были добавлены в область подготовки.
Чтобы увидеть различия между рабочей директорией и областью подготовки, вы можете использовать команду git diff
без каких-либо опций:
git diff
Вы должны увидеть вывод, похожий на следующий:
diff --git a/future_plans.txt b/future_plans.txt
index a1b2c3d..e4f5g6h 100644
--- a/future_plans.txt
+++ b/future_plans.txt
@@ -1 +1,2 @@
Plan 1: Build a bigger time machine
+Plan 2: Invent a self-folding laundry machine
Этот вывод показывает различия между версией файла future_plans.txt
в области подготовки (которая содержит только "Plan 1") и версией в вашей рабочей директории (которая теперь содержит и "Plan 1", и "Plan 2"). Знак +
снова указывает на добавленную строку.
Понимание различий между отслеживаемыми (staged) и неотслеживаемыми (unstaged) изменениями, а также способов их просмотра с помощью команд git status
и git diff
, является фундаментом эффективного использования Git.
Нажмите q
, чтобы выйти из режима просмотра различий.