我正在尝试在git中提交正确的文件,但是在正确配置我的gitignore时遇到了问题。我按照here的说明创建了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中的设置?
答案 0 :(得分:5)
看起来您已经在git的版本控制下拥有settings.py
。在这种情况下,git将继续跟踪文件 - 无论您在.gitignore
中写什么。
你必须明确告诉git忘记settings.py
:
.gitignore
(正如您所做)git rm --cached projectname/settings.py
git commit -m "remove settings.py"
之后git将忽略该文件。但请注意,已提交的版本将保留在您的存储库中。
答案 1 :(得分:0)
尝试在目录
之前添加/
# 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)
如果您仍面临同样的问题:
答案 2 :(得分:0)
对于已经版本化的文件,GitHub help page建议使用git update-index --assume-unchanged projectname/settings.py
,而不是.gitignore。