Комбинирование с проверкой игнорируемых файлов
На предыдущих этапах мы научились определять неотслеживаемые файлы с помощью команд git status
и git ls-files --others
. Однако иногда бывают файлы, которые вы нарочно не хотите, чтобы Git отслеживал, например временные файлы, результаты сборки или конфигурационные файлы, содержащие конфиденциальную информацию. Git позволяет указать эти файлы в файле .gitignore
.
На этом этапе мы создадим файл .gitignore
и посмотрим, как он влияет на вывод команд git status
и git ls-files --others
.
Сначала убедитесь, что вы находитесь в директории ~/project/my-time-machine
.
Теперь создадим файл, который мы хотим игнорировать. Назовем его temp.log
:
echo "This is a temporary log file" > temp.log
Запустим команду git status
еще раз:
git status
Вы должны увидеть, что и notes.txt
, и temp.log
перечислены как неотслеживаемые файлы:
On branch master
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: message.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
notes.txt
temp.log
no changes added to commit (use "git add" and/or "git commit -a")
Теперь создадим файл .gitignore
и добавим в него temp.log
. Используем редактор nano
для создания и редактирования файла:
nano .gitignore
Внутри редактора nano
введите следующую строку:
temp.log
Нажмите Ctrl + X
, затем Y
для сохранения и Enter
для подтверждения имени файла.
Теперь запустим команду git status
еще раз:
git status
На этот раз temp.log
больше не должен появляться в списке "Untracked files:":
On branch master
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: message.txt
Untracked files:
(use "git add <file>..." to include in what will be committed)
notes.txt
no changes added to commit (use "git add" and/or "git commit -a")
Теперь Git знает, что нужно игнорировать temp.log
. Посмотрим, как это повлияет на команду git ls-files --others
:
git ls-files --others
Теперь вывод должен показывать только notes.txt
:
notes.txt
По умолчанию команда git ls-files --others
не выводит игнорируемые файлы. Это обычно является желаемым поведением, так как обычно вы не хотите видеть файлы, которые вы явно указали Git игнорировать.
Если вы хотите увидеть игнорируемые файлы вместе с другими неотслеживаемыми файлами, вы можете использовать опцию --ignored
с командой git ls-files --others
:
git ls-files --others --ignored
Теперь вывод будет включать как неотслеживаемые, так и игнорируемые файлы:
.gitignore
notes.txt
temp.log
Обратите внимание, что сам файл .gitignore
является неотслеживаемым, пока вы не добавите его и не закоммитьте.
Понимание того, как использовать файл .gitignore
, является важным для того, чтобы держать ваш репозиторий чистым и сосредоточенным на реальных файлах проекта. Это предотвращает случайные коммиты файлов, которые не должны быть в системе контроля версий.