Как проверить, отслеживается ли файл Git

GitGitBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В этом практическом занятии (лабораторной работе) вы научитесь проверять, отслеживается ли файл в системе контроля версий Git. Мы рассмотрим два важных Git-команда: git ls-files и git status.

Сначала вы используете git ls-files для вывода списка всех файлов, которые в настоящее время отслеживаются Git в вашем репозитории. Затем вы используете git status для проверки статуса отслеживания и понимания того, как Git сообщает о состоянии вашего рабочего каталога, когда все изменения были зафиксированы (коммиты). Наконец, вы протестируете, как Git обрабатывает неотслеживаемые файлы.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL git(("Git")) -.-> git/BasicOperationsGroup(["Basic Operations"]) git(("Git")) -.-> git/BranchManagementGroup(["Branch Management"]) git/BasicOperationsGroup -.-> git/add("Stage Files") git/BasicOperationsGroup -.-> git/status("Check Status") git/BranchManagementGroup -.-> git/log("Show Commits") subgraph Lab Skills git/add -.-> lab-560032{{"Как проверить, отслеживается ли файл Git"}} git/status -.-> lab-560032{{"Как проверить, отслеживается ли файл Git"}} git/log -.-> lab-560032{{"Как проверить, отслеживается ли файл Git"}} end

Запуск команды git ls-files для проверки файлов

На этом этапе мы будем использовать команду git ls-files, чтобы узнать, какие файлы в настоящее время отслеживаются Git в нашем репозитории. Эта команда полезна для быстрого обзора файлов, которые являются частью истории проекта.

Сначала убедитесь, что вы находитесь в директории my-time-machine. Если вы не в ней, используйте команду cd для перехода в нее:

cd ~/project/my-time-machine

Теперь запустите команду git ls-files:

git ls-files

Поскольку мы уже создали и зафиксировали (сделали коммит) файл message.txt на предыдущих этапах, в выводе вы должны увидеть имя этого файла:

message.txt

Команда git ls-files выводит список всех файлов, которые в настоящее время отслеживаются Git в вашем репозитории. Это те файлы, за изменениями которых Git активно следит и которые включаются в ваши коммиты.

Понимание, какие файлы отслеживаются, важно, так как Git управляет только историей отслеживаемых файлов. Любые файлы, которые не отслеживаются, будут проигнорированы Git при выполнении коммитов. Это позволяет вам контролировать, что включается в историю версий вашего проекта.

На следующих этапах мы рассмотрим, как Git обрабатывает файлы, которые еще не отслеживаются.

Использование команды git status для проверки отслеживания

На предыдущем этапе мы использовали команду git ls-files и узнали, что файл message.txt отслеживается. Теперь давайте снова используем команду git status, чтобы увидеть, как Git сообщает о состоянии нашего репозитория, когда все изменения уже зафиксированы (сделаны коммиты).

Убедитесь, что вы по-прежнему находитесь в директории ~/project/my-time-machine.

Запустите команду git status:

git status

Вы должны увидеть вывод, похожий на следующий:

On branch master
nothing to commit, working tree clean

Этот вывод сообщает нам несколько важных вещей:

  • "On branch master": Мы по-прежнему находимся на главной ветке (timeline) нашего проекта.
  • "nothing to commit, working tree clean": Это ключевая часть. Это означает, что в нашем рабочем каталоге нет изменений, которые нужно зафиксировать (сделать коммит). Git видит, что текущее состояние файлов соответствует состоянию последнего коммита.

Это идеальное состояние для вашего репозитория, когда вы завершили набор изменений и зафиксировали их. Это показывает, что ваш рабочий каталог "чист" и синхронизирован с последним коммитом.

Сравнивая этот вывод с выводом команды git status, который мы видели до создания файла message.txt и его фиксации (коммита), вы можете увидеть, как сообщение о статусе Git меняется в зависимости от состояния ваших файлов и коммитов.

На следующем этапе мы добавим новый файл, чтобы увидеть, как меняется статус Git, когда есть неотслеживаемые файлы.

Тестирование неотслеживаемых файлов

На этом этапе мы создадим новый файл в директории my-time-machine и посмотрим, как статус Git изменится, чтобы отразить наличие неотслеживаемого файла.

Убедитесь, что вы находитесь в директории ~/project/my-time-machine.

Создайте новый файл с именем notes.txt с помощью команды echo:

echo "Some random notes" > notes.txt

Эта команда создает новый файл с именем notes.txt и записывает в него текст "Some random notes".

Теперь проверим статус нашего репозитория снова, используя команду git status:

git status

Вы должны увидеть вывод, похожий на следующий:

On branch master
Untracked files:
  (use "git add <file>..." to include in what will be committed)
        notes.txt

nothing added to commit but untracked files present (use "git add" to track)

Обратите внимание на раздел "Untracked files:". Git обнаружил новый файл notes.txt, но сообщает, что он не отслеживается. Это происходит потому, что мы еще не сообщили Git, что нужно включить этот файл в историю нашего репозитория.

Это ключевой концепт в Git: вы должны явно сообщить Git, какие файлы вы хотите отслеживать, используя команду git add. Это предотвращает автоматическое добавление каждым файлом в вашем каталоге, которые могут включать временные файлы, артефакты сборки или личные заметки, которые вы не хотите видеть в истории проекта.

В следующем LabEx мы узнаем, как добавить этот новый файл в staging area и зафиксировать его (сделать коммит), чтобы он стал отслеживаемым файлом в нашем репозитории.

Резюме

В этом LabEx мы научились проверять, отслеживается ли файл Git. Мы использовали команду git ls-files для вывода списка всех файлов, которые в данный момент отслеживаются в репозитории, и подтвердили, что файл message.txt отслеживается.

Затем мы использовали команду git status для проверки состояния репозитория. Вывод "nothing to commit, working tree clean" показал, что все изменения были зафиксированы (сделаны коммиты), и в рабочем каталоге нет неотслеживаемых файлов или ожидающих изменения. Это укрепило наше понимание того, как Git сообщает о статусе отслеживаемых файлов.