Ответ 1
Вам необходимо убедиться, что файл, который вы все еще видите, в настоящий момент не выполняется или не поставлен.
Если вы удалите их (git rm
или git rm --cached
), а затем добавьте их как закрытый файл, они будут проигнорированы.
Я создал файл .gitignore в папке с .git, но я все еще получаю файлы, которые я пытаюсь игнорировать при выполнении повторного сканирования репозитория.
Это содержимое файла.
# Ignored files
*.suo
*.user
bin
obj
*.pdb
*.cache
*_svn
*.svn
*.suo
*.user
*.build-res
TestResults
_ReSharper*
Что я делаю неправильно? где находится файл, который должен быть найден?
Вам необходимо убедиться, что файл, который вы все еще видите, в настоящий момент не выполняется или не поставлен.
Если вы удалите их (git rm
или git rm --cached
), а затем добавьте их как закрытый файл, они будут проигнорированы.
Ваш файл выглядит хорошо. Просто убедитесь, что у вас нет каких-либо пробелов в начале каждой строки, мне потребовалось 4 часа, чтобы узнать, почему мой .gitignore работает неправильно; причина была, конечно, проблемой cut'n'paste, где у меня была вертикальная линия пробелов в начале файла.
Вы должны быть осторожны с git commit -a
, прежде чем убедиться, что ваш файл .gitignore действительно очищает все, что вам не нужно. Пометить каждый файл (или использовать подстановочные знаки) с помощью git add *.cpp *.h
или - как я предпочитаю - развить свой .gitignore по мере продвижения и всегда проверять с помощью git status
перед тем, как совершать.
Если вы хотите дважды проверить, что ваш .gitignore действительно работает, попробуйте
git ls-files --others -i --exclude-standard
В этом списке должны быть указаны все файлы, которые вы в данный момент игнорируете.
Чтобы очистить файлы, которые вы уже добавили (возможно, используя git add .
, ошибку, которую мы все делаем в начале =], вы можете сделать, например @VonC сказал:
либо запустите
git rm <filename>
или
git rm --cached <filename>
Еще одна возможность очистки всех файлов, которые вы случайно добавили, - это полностью очистить ваш репозиторий, а затем снова добавить все. Если вы хотите удалить все в промежуточной области, вы можете запустить
git --rm cached .
Но не забудьте не запускать git add .
Пока вы не убедитесь, что статус git содержит только список файлов, которые вы действительно хотите в репозитории.
Еще одна очень полезная вещь с git заключается в том, что ей не нужны пути к файлам при использовании подстановочных знаков. Если вы перечислите свои проигнорированные файлы и увидите, что хотите удалить все файлы *.suo
и *.log
, просто запустите
git rm --cached *.suo *.log
и git позаботится о поиске всех файлов в вашем репозитории, соответствующих этой сигнатуре, независимо от того, где они находятся в дереве.
Я попробовал несколько способов заставить это работать, и это было наконец довольно просто:
Сначала вы должны перенести .gitignore!
Кроме того, если вы используете инструмент TortoiseGIT - GitEx Commit Tool, есть возможность редактировать проигнорированные файлы.
Вы находите это правильно. .gitignore должен находиться в той же папке, где находится папка .git. Файл внутри также выглядит корректно. Тем не менее, у меня нет строки комментария наверху.
Когда я смотрю на это, я думаю, вы забыли передать свой файл игнорирования.
Ни один из -m-кэшированных решений не работал у меня. Файл должен быть закодирован как ASCII/ANSI. Я также изменил окончание строки, но это не помогло. Я не могу найти url, у которого были эти инструкции (извините, оригинальный плакат!), Но это сработало для меня:
Из командной строки в Windows или командной строке git, в зависимости от того, что вам нравится, когда вы выполняете git статус, он не должен показывать файлы в .gitignore.