Файл отслеживается, если он находится под контролем версий.
В качестве небольшого примера проект C ++ будет иметь
Makefile
main.cpp
interface.hpp
worker.cpp
в качестве исходных файлов;вы бы поставили их под контроль версий.Во время сборки генерируется
main.o
worker.o
myapp
;они не относятся к управлению версиями, поэтому вы не используете git add
для них.Они остаются неотслеживаемыми , потому что git не волнует, что с ними происходит.Пока вы не добавите их в .gitignore
(файлы .o по умолчанию игнорируются), git не знает, хотите ли вы добавить или игнорировать их, поэтому отображает их с помощью команды git status
, пока вы не примете решение.
Независимо от того, отслеживается файл или нет, также зависит от версии - предположим, вы автоматически сгенерировали worker.cpp
и удалили его из системы контроля версий в более поздней версии.Файл теперь не отслеживается в этой версии.Когда вы вернетесь к версии, где файл все еще находился под контролем версий, git откажется перезаписывать этот файл во время извлечения.