Настройки gitignore включены в коммит
Я пытаюсь зафиксировать нужные файлы в git, но у меня возникают проблемы с правильной настройкой gitignore. Я следовал приведенным здесь инструкциям, чтобы создать файл gitignore (проект django):
# File types #
##############
*.pyc
*.swo
*.swp
*.swn
# Directories #
###############
logs/
# Specific files #
##################
projectname/settings.py
# OS generated files #
######################
.DS_Store
ehthumbs.db
Icon
Thumbs.db
*~
Проблема в том, что settings.py включается в коммит:
Admin$ git add .
Admin$ git status
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: projectname/settings.py
Как я могу игнорировать настройки в моем gitignore?
3 ответа
Похоже, у вас уже есть settings.py
под контролем версий с помощью git. В этом случае Git будет продолжать отслеживать файл - независимо от того, что вы пишете .gitignore
,
Вы должны явно сказать Git забыть о settings.py
:
- Добавьте это к
.gitignore
(Как вы сделали) - Удалите файл из git, не удаляя файл:
git rm --cached projectname/settings.py
- Зафиксируйте изменения:
git commit -m "remove settings.py"
После этого git будет игнорировать файл. Но имейте в виду, что версии, которые уже зафиксированы, останутся в вашем хранилище.
Для файла, который уже имеет версии, на странице справки GitHub предлагается использовать git update-index --assume-unchanged projectname/settings.py
, а не.gitignore.
Попробуйте добавить /
перед вашим каталогом
# Specific files #
##################
/projectname/settings.py
Для получения дополнительной информации,
$ mkdir git_test
$ cd git_test/
~/git_test $ git init
Initialized empty Git repository in /home/linux/git_test/.git/
~/git_test $ touch .gitignore
~/git_test $ vim .gitignore
~/git_test $ cat .gitignore
/aa/aa.py
~/git_test $ mkdir aa
~/git_test $ touch aa/aa.py
~/git_test $
~/git_test $
~/git_test $ git status
# On branch master
#
# Initial commit
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
Если вы все еще сталкиваетесь с той же проблемой: