Вопрос
Я создал файл .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 не работал правильно; Причиной была, конечно, проблема с вырезом, в которой у меня была вертикальная линия пространств в начале файла.
Вы должны быть осторожны с 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, есть возможность редактировать игнорируемые файлы.
Вы находите это правильно. .gitignore должен быть в одной и той же папке, где расположена. Файл внутри также выглядит правильно. Однако у меня нет линии комментариев вверху ..
Когда я смотрю на это, я думаю, что вы забыли совершить свой файл игнорирования.
Ни одно из растворов -кэшированных решений не работало для меня. Файл должен быть закодирован как ASCII/ANSI. Я также изменил концовки линии, но это только это не исправило. Я не могу найти URL, в котором были эти инструкции (извините, оригинальный плакат!), Но это сработало для меня:
- Установите Notepad ++, если у вас его еще нет. TextPad также должен работать, но я использую Notepad ++.
- Откройте свой .gitignore с блокнотом ++.
- Нажмите на просмотр | Показать символ | Покажите всех персонажей. Вы, вероятно, увидите CR LF в конце каждой линии.
- Сделайте поиск и замените (Ctrl+H), убедившись, что расширенная проверка (нижний ручной угол). Поиск r n и замените на n. Вы увидите все изменения CR LF только на LF.
- Теперь нажмите на кодирование | Кодировать в ANSI.
- Сохраните файл и выйдите.
В командной строке в Windows или в командной строке GIT, в зависимости от того, что вам нравится, когда вы делаете статус GIT, она не должна показывать файлы в .gitignore.