Проверка различий между подготовленными и неподготовленными к коммиту изменениями
На этом этапе мы будем дальше исследовать разницу между подготовленными к коммиту (staged) и неподготовленными к коммиту (unstaged) изменениями, изменив файл, который уже отслеживается Git.
Сначала убедитесь, что вы находитесь в директории ~/project/my-time-machine
:
cd ~/project/my-time-machine
Теперь добавим еще одну строку в наш файл notes.txt
. Мы можем использовать команду echo
с оператором >>
для добавления текста в существующий файл:
echo "Another idea" >> notes.txt
Эта команда добавляет строку "Another idea" в конец файла notes.txt
.
Проверим статус нашего репозитория еще раз:
git status
Вы должны увидеть вывод, похожий на следующий:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
new file: notes.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: notes.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
message.txt
Обратите внимание, что файл notes.txt
теперь появляется в двух разделах:
- Changes to be committed (Изменения, готовые к коммиту): Это относится к версии файла
notes.txt
, которую мы добавили в область подготовки к коммиту на предыдущем этапе (которая содержала только "Ideas for the future").
- Changes not staged for commit (Изменения, не подготовленные к коммиту): Это относится к изменениям, которые мы только что внесли в файл
notes.txt
(добавление строки "Another idea"). Эти изменения находятся в рабочем каталоге, но еще не были добавлены в область подготовки к коммиту.
Это ключевой концепт в Git: область подготовки к коммиту содержит снимок изменений, готовых для следующего коммита, в то время как рабочий каталог содержит текущее состояние ваших файлов, включая изменения, которые еще не были подготовлены к коммиту.
Чтобы увидеть разницу между рабочим каталогом и областью подготовки к коммиту, вы можете использовать команду git diff
без каких-либо опций:
git diff
Это покажет вам изменения, которые не подготовлены к коммиту. Вы должны увидеть вывод, показывающий, что добавлена строка "Another idea".
Чтобы увидеть разницу между областью подготовки к коммиту и последним коммитом (что мы видели на предыдущем этапе), используйте команду git diff --cached
.
Понимание разницы между подготовленными и неподготовленными к коммиту изменениями и способов их просмотра с помощью команд git status
и git diff
является фундаментальным для эффективного использования Git. Это позволяет вам точно контролировать, какие изменения попадают в каждый коммит.