Ответ 1
Я предполагаю, что эта папка была проверена в Git раньше?
Запустите git rm -r --cached <folder>
и проверьте снова.
В корне моего проекта у меня есть папка foo
. Внутри папки foo
у меня есть папка bar
. Я хотел бы игнорировать все изменения ко всем файлам внутри моей папки bar
. У меня это в моем gitignore
:
/foo/bar
Папка проверена: она существует, и она игнорирует файлы. gitignore
commit
ted. Однако у меня есть файл, где я делаю moification и находится внутри моей папки bar
. Когда я печатаю
git status
внутри my git bash
Я вижу файл, который должен был быть проигнорирован. Что может быть причиной и как я могу успешно игнорировать все файлы в моей папке?
Обратите внимание, что файлы ранее были проигнорированы с той же строкой, но мне пришлось временно удалить эту строку на commit
что-то на сервере. После commit
я вернул строку в gitignore
. Это было давно, но теперь я заметил, что файлы будут находиться в git status
. Я ожидаю, что смогу изменить проигнорированные файлы, не появляясь в git status
.
Я предполагаю, что эта папка была проверена в Git раньше?
Запустите git rm -r --cached <folder>
и проверьте снова.
Для меня принятый ответ был частью решения, а не всего решения. Возможно, другие шаги, которые я собираюсь опубликовать, были очевидны, но я сначала пропустил их. Вот шаги, которые я предпринял, чтобы мой файл .gitignore
игнорировал папку, которую я хотел игнорировать:
git rm -r --cached.
(который удаляет все из индекса git для обновления вашего репозитория git)git add.
(чтобы добавить все обратно в репо)git commit -m ".gitignore Fixed"
эти изменения, используя git commit -m ".gitignore Fixed"
Вы можете найти ссылку на статью, где я нашел решение здесь.
У меня возникла эта проблема, и я понял, что git на самом деле правильно игнорирует файлы/папки, но мой редактор кода (код Visual Studio) просто глючил и не "правильно их отображал" на боковой панели пользовательского интерфейса. Я перезапустил VSCode, и они были серыми, как и ожидалось.
Как дополнение к принятому ответу
git rm -r --cached /foo/bar/
git status
Когда я это делаю, терминал показывает кучу rm
для файлов в этом каталоге. Таким образом, чтобы предотвратить другой коммит, который может излишне повлиять на удаленный, я сделал:
git reset HEAD *
git status
После этого он не сказал ничего для фиксации, и когда я изменяю файлы в /foo/bar/
и делаю git status
я все равно nothing to commit
получаю.