Введение
В этом лабораторном занятии вы узнаете, как проверить, находится ли файл в индексе Git (также известном как область подготовки изменений). Мы рассмотрим концепцию индекса и его роль в подготовке изменений для коммитов.
Вы будете использовать команду git ls-files --stage для просмотра содержимого индекса и команду git status для получения полного обзора состояния вашего репозитория, включая подготовленные и неподготовленные к коммиту изменения. В конце вы проверите, как Git обрабатывает файлы, которые еще не были добавлены в индекс.
Запустите команду git ls-files --stage
На этом этапе мы рассмотрим индекс Git (также известный как область подготовки изменений). Индекс - это важная концепция в Git. Он похож на зону ожидания, где вы готовите изменения перед тем, как зафиксировать их в коммите.
Представьте себе это так: когда вы вносите изменения в файлы в рабочем каталоге, они не автоматически включаются в следующий коммит. Сначала вам нужно добавить их в индекс с помощью команды git add. Индекс хранит снимок изменений, которые вы подготовили к коммиту.
Чтобы увидеть, что в настоящее время находится в индексе, мы используем команду git ls-files --stage. Эта команда выводит список файлов, которые в настоящее время подготовлены для следующего коммита.
Давайте попробуем это в каталоге my-time-machine:
cd ~/project/my-time-machine
git ls-files --stage
Поскольку в этом новом репозитории мы еще не добавили ни одного файла в индекс, вы не должны увидеть никакого вывода. Это означает, что индекс в настоящее время пуст.
Понимание индекса - это ключ к овладению Git. Он позволяет вам детально контролировать, какие изменения попадают в каждый коммит, что позволяет группировать связанные изменения и поддерживать чистую и организованную историю коммитов.
Используйте git status для проверки индекса
На предыдущем этапе мы использовали команду git ls-files --stage для просмотра содержимого индекса. Другой командой, которая помогает нам понять состояние нашего репозитория, включая индекс, является git status.
Команда git status предоставляет сводку о том, что происходит в рабочем каталоге и области подготовки изменений по сравнению с последним коммитом. Она сообщает, какие файлы были изменены, какие подготовлены для следующего коммита и какие не отслеживаются.
Давайте выполним команду git status в нашем каталоге my-time-machine:
cd ~/project/my-time-machine
git status
Поскольку это совершенно новый репозиторий и мы еще не создали ни одного файла и не сделали ни одного коммита, вывод должен быть похож на следующий:
On branch master
No commits yet
nothing to commit (create/copy files and use "git add" to track)
Этот вывод подтверждает, что нет изменений, которые нужно зафиксировать в коммите, что означает, что индекс пуст, как и показала команда git ls-files --stage. Сообщение "nothing to commit" напрямую связано с состоянием индекса.
По мере прохождения лабораторного занятия и создания и подготовки файлов к коммиту вы увидите, как меняется вывод команды git status, отображающий содержимое индекса и состояние вашего рабочей директории.
Тестирование неиндексированных файлов
На этом этапе мы создадим новый файл в рабочем каталоге и посмотрим, как Git распознает его до того, как он будет добавлен в индекс. Это поможет вам понять разницу между файлами в рабочем каталоге и файлами в индексе.
Сначала убедитесь, что вы находитесь в каталоге my-time-machine:
cd ~/project/my-time-machine
Теперь создадим простой текстовый файл с помощью команды echo:
echo "This is a new file." > new_file.txt
Эта команда создает файл с именем new_file.txt и записывает в него текст "This is a new file.".
Теперь проверим статус нашего репозитория снова с помощью команды git status:
git status
Вы должны увидеть вывод, похожий на следующий:
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
new_file.txt
nothing added to commit but untracked files present (use "git add" to track)
Обратите внимание на раздел "Untracked files:". Git видит, что файл new_file.txt существует в рабочем каталоге, но еще не отслеживается Git. Это означает, что он не находится в индексе и не является частью истории коммитов.
Это важная концепция: Git отслеживает только те файлы, которые вы явно указываете для отслеживания с помощью команды git add. Любые новые файлы, созданные в рабочем каталоге Git-репозитория, изначально являются "неотслеживаемыми".
На следующем этапе мы добавим этот файл в индекс, подготовив его к первому коммиту.
Резюме
В этом лабораторном занятии мы научились проверять, находится ли файл в индексе Git (также известном как область подготовки изменений). Мы использовали команду git ls-files --stage для прямого перечисления файлов, которые в настоящее время подготовлены для следующего коммита. Мы также изучили команду git status, которая предоставляет полную сводку о состоянии репозитория, включая информацию о подготовленных к коммиту, измененных и неотслеживаемых файлах, и помогает нам проверить содержимое индекса.



