Подтвердить что ты не робот

Gitignore не игнорирует папку

В корне моего проекта у меня есть папка foo. Внутри папки foo у меня есть папка bar. Я хотел бы игнорировать все изменения ко всем файлам внутри моей папки bar. У меня это в моем gitignore:

/foo/bar

Папка проверена: она существует, и она игнорирует файлы. gitignore commit ted. Однако у меня есть файл, где я делаю moification и находится внутри моей папки bar. Когда я печатаю

git status

внутри my git bash Я вижу файл, который должен был быть проигнорирован. Что может быть причиной и как я могу успешно игнорировать все файлы в моей папке?

Обратите внимание, что файлы ранее были проигнорированы с той же строкой, но мне пришлось временно удалить эту строку на commit что-то на сервере. После commit я вернул строку в gitignore. Это было давно, но теперь я заметил, что файлы будут находиться в git status. Я ожидаю, что смогу изменить проигнорированные файлы, не появляясь в git status.

4b9b3361

Ответ 1

Я предполагаю, что эта папка была проверена в Git раньше?

Запустите git rm -r --cached <folder> и проверьте снова.

Ответ 2

Для меня принятый ответ был частью решения, а не всего решения. Возможно, другие шаги, которые я собираюсь опубликовать, были очевидны, но я сначала пропустил их. Вот шаги, которые я предпринял, чтобы мой файл .gitignore игнорировал папку, которую я хотел игнорировать:

  1. Зафиксируйте любые изменения, которые вам нужно исправить/изменить.
  2. Запустите эту команду: git rm -r --cached. (который удаляет все из индекса git для обновления вашего репозитория git)
  3. Затем выполните эту команду: git add. (чтобы добавить все обратно в репо)
  4. Наконец, git commit -m ".gitignore Fixed" эти изменения, используя git commit -m ".gitignore Fixed"

Вы можете найти ссылку на статью, где я нашел решение здесь.

Ответ 3

У меня возникла эта проблема, и я понял, что git на самом деле правильно игнорирует файлы/папки, но мой редактор кода (код Visual Studio) просто глючил и не "правильно их отображал" на боковой панели пользовательского интерфейса. Я перезапустил VSCode, и они были серыми, как и ожидалось.

Ответ 4

Как дополнение к принятому ответу

git rm -r --cached /foo/bar/
git status

Когда я это делаю, терминал показывает кучу rm для файлов в этом каталоге. Таким образом, чтобы предотвратить другой коммит, который может излишне повлиять на удаленный, я сделал:

git reset HEAD *
git status

После этого он не сказал ничего для фиксации, и когда я изменяю файлы в /foo/bar/ и делаю git status я все равно nothing to commit получаю.