не отслеженные файлы, не показанные в состоянии git
У меня есть проект со следующей структурой папок:
все файлы проекта находятся в папке base_fldr. Также у меня есть несколько папок внутри base_fldr под названием sub_fldr1 и sub_fldr2. Эти подпапки также содержат некоторые файлы.
Если я изменяю любой из файлов внутри моего base_fldr или base_fldrsub_fldr, то git status показывает их как измененные. Также, если я добавлю новый файл в base_fldr, статус git покажет его как неотслеженный файл.
моя проблема в том, если я добавлю новый файл внутри base_fldrsub_fldr тогда статус git не показывает файл как не отслеженный. Он даже не даст никакой информации о файле.
файл или его расширение не находится в my .список гитюдного. Также я попробовал git добавить sub_fldrfile_name, но ни он не дал ошибку, ни он не добавил файл в индекс.
есть идеи, что здесь происходит? Спасибо!
6 ответов
Я понял, что происходит не так. В основном первая строка в моей .файл gitignore -"*/". Это приводит к тому, что любой файл, добавленный в подкаталог, игнорируется командой git status. Но самое смешное, что если я изменяю любые файлы в подпапке, git status правильно показывает их как измененные, поскольку файл уже находится в репозитории git, но игнорирует новые файлы в подпапке.
я исправил свою проблему, удалив строку .gitignore файл, чтобы не игнорировать изменения в подпапках, а затем добавил новые файлы для индексирования, а затем снова добавил обратно строку .gitignore, чтобы он игнорировал любые сгенерированные файлы в подпапках.
спасибо всем за ответы.
я столкнулся с аналогичной проблемой с отсутствующими отслеживаемыми файлами. Экспериментируя с способами управления локально измененными версиями отслеживаемых файлов без необходимости постоянно избегать случайных коммитов, я запустил следующее:
git update-index --assume-unchanged my-tracked-file-that-is-awol
в итоге я отказался от этой идеи, но забыл отменить команду, поэтому последующие изменения в этом и других-предположим-неизмененные файлы полностью отсутствовали:
git status -u --ignored
мне потребовалось некоторое время, чтобы выяснить, что происходит, но я просто пришлось отменить команду с:
git update-index --no-assume-unchanged my-tracked-file-that-is-awol
Это, вероятно, потому, что ваш каталог base_fldr\sub_fldr\ не отслеживается, если вы запустите:
git add base_fldr\sub_fldr\
из вашего рабочего корня копии он автоматически добавит каталог и другие файлы и каталоги в этом каталоге.
по умолчанию git не будет показывать файлы в каталогах, которые не отслеживаются.
вот еще одна причина поведения, описанного в этом вопросе (git status untracked files list не включает неотслеженный файл в подпапке). Если файл не отслеживается из-за a .файл gitignore в подпапке тогда файл не будет включен в список файлов состояния git untracked.
чтобы отладить такую проблему, посмотрите, если ваш .gitignore
файл является виновником, наблюдая следующие два выхода
см.https://git-scm.com/docs/git-ls-files
git ls-files --other --directory --exclude-standard
это покажет все неотслеженные файлы, в то время как повинуясь .
git ls-files --other --directory
это покажет все неотслеживаемые файлы, не подчиняясь .
какие бы файлы ни присутствовали в выводе 2
, но нет в выводе 1
, не показаны в untracked из-за некоторого флага в вашем