Ваш файл выглядит хорошо. Просто убедитесь, что в начале каждой строки нет пробелов, мне потребовалось 4 часа, чтобы выяснить, почему мой .gitignore не работал правильно; причина была, конечно, проблема с надрезом и вставкой, когда у меня была вертикальная линия пробелов в начале файла.
Вы должны быть осторожны с git commit -a
, прежде чем убедиться, что ваш файл .gitignore действительно удаляет все, что вам не нужно. Либо пометьте каждый файл (или используйте подстановочные знаки) с помощью git add *.cpp *.h
, либо - как я предпочитаю - развивайте свой .gitignore по мере продвижения, и всегда проверяйте с помощью git status
перед передачей.
Если вы хотите перепроверить, что ваш .gitignore действительно работает, try
git ls-files --others -i --exclude-standard
В этом списке будут перечислены все файлы, которые вы в данный момент игнорируете.
Чтобы удалить файлы, которые вы уже добавили (вероятно, используя git add .
, ошибку, которую мы все делаем в начале =]), вы можете сделать так: @ VonC сказал:
либо запустить
git rm <filename>
или
git rm --cached <filename>
Другой вариант удаления всех файлов, которые вы случайно добавили, - это полная очистка вашего хранилища, а затем снова все добавить. Если вы хотите очистить все в области подготовки, вы можете запустить
git --rm cached .
Но не забудьте запустить git add .
Пока вы не убедитесь, что в git status перечислены только те файлы, которые вам действительно нужны в репозитории.
Еще одна очень полезная вещь с git - это то, что ему не нужны пути к файлам при использовании подстановочных знаков. Если вы выводите список игнорируемых файлов и видите, что хотите удалить все файлы *.suo
и *.log
, просто запустите
git rm --cached *.suo *.log
и git позаботится о том, чтобы найти все файлы в вашем хранилище, которые соответствуют этой подписи, независимо от того, где они находятся в дереве.