Настройки 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:

  1. Добавьте это к .gitignore (Как вы сделали)
  2. Удалите файл из git, не удаляя файл: git rm --cached projectname/settings.py
  3. Зафиксируйте изменения: 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)

Если вы все еще сталкиваетесь с той же проблемой:

https://help.github.com/articles/ignoring-files

Другие вопросы по тегам