В корне моего проекта есть foo
папка. Внутри foo
папки у меня есть bar
папка. Я хочу игнорировать все изменения всех файлов в моей bar
папке. У меня это в моем gitignore
:
/foo/bar
Папка проверяется: она существует и в ней есть файлы, которые нужно игнорировать. gitignore
это commit
Тэд. Однако у меня есть файл, в котором я делаю изменения, и он находится внутри моей bar
папки. Когда я печатаю
git status
внутри git bash
я вижу файл, который следовало проигнорировать. В чем может быть причина и как я могу успешно игнорировать все файлы в моей папке бара?
Обратите внимание, что файлы ранее игнорировались с той же строкой, но мне пришлось временно удалить эту строку на commit
что-то на сервере. После этого commit
я снова вставил строку в gitignore
. Это было некоторое время назад, но теперь я заметил, что файлы будут в формате git status
. Я ожидал, что смогу изменять игнорируемые файлы, не появляясь в git status
.
git add -f ignored-file
добавит файл, даже если он у вас игнорируется.git status foo/bar/file-that-should-be-ignored
дает?git log foo/bar/file-that-should-be-ignored
. Если он не должен быть частью репозитория, вы должны удалить его,git rm --cached foo/bar/file-that-should-be-ignored
а затем зафиксировать, как предлагает Reck ниже (хотя я бы просто сделал это для файла, а не для всей папки). Это (а) удалит файл из Git, (б) сохранит файл в вашей локальной копии и (в) приведет к удалению файла, когда другиеfetch
илиpull
новая фиксация.Ответы:
Я предполагаю, что эта папка уже была проверена в git?
Запускаем
git rm -r --cached <folder>
и проверяем еще раз.источник
git update-index --assume-unchanged <folder>
возможно?Для меня принятый ответ был частью решения, а не всем решением. Возможно, другие шаги, которые я собираюсь опубликовать, были очевидны, но я сначала их пропустил. Вот шаги, которые я предпринял, чтобы мой
.gitignore
файл игнорировал папку, которую я хотел игнорировать:git rm -r --cached .
(которая удаляет все из индекса git, чтобы обновить репозиторий git)git add .
(чтобы добавить все обратно в репо)git commit -m ".gitignore Fixed"
Вы можете найти ссылку на статью, в которой я нашел решение здесь .
источник
У меня возникла эта проблема, и я понял, что git на самом деле правильно игнорирует файлы / папки, но мой редактор кода (код Visual Studio) просто глючил и не «затенял их» должным образом на боковой панели пользовательского интерфейса. Я перезапустил VSCode, и они, как и ожидалось, стали серыми.
источник
В дополнение к принятому ответу
Когда я это делаю, терминал показывает кучу
rm
файлов в этом каталоге. Итак, чтобы предотвратить еще одну фиксацию, которая может излишне повлиять на удаленный доступ, я сделал:После этого он ничего не сказал о фиксации, и когда я изменяю файлы внутри
/foo/bar/
и делаю это,git status
я все равно получаюnothing to commit
.источник